प्रौद्योगिकी साझेदारी

Zookeeper इत्यस्य आधारेण वितरितसमन्वयसेवाः कार्यान्विताः

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Zookeeper इत्यस्य आधारेण वितरितसमन्वयसेवाः कार्यान्विताः

नमस्कारः सर्वेभ्यः, अहं Weizhuan Taoke System 3.0 इत्यस्य सम्पादकः अस्मि, अपि च अहम् एकः प्रोग्रामरः अपि अस्मि यः शिशिरे दीर्घं johns न धारयति, परन्तु तदपि शीते शीतलं भवितुम् अर्हति!

1. Zookeeper इति किम् ?

Zookeeper इति मुक्तस्रोतवितरितअनुप्रयोगसमन्वयसेवा अस्ति या कुशलवितरितदत्तांशप्रबन्धनसमन्वयक्षमता च प्रदाति । मुख्यतया वितरित-अनुप्रयोगेषु आँकडा-सङ्गति-समस्यानां समाधानार्थं तस्य उपयोगः भवति, यथा सेवा-पञ्जीकरणं, आविष्कारः च, वितरित-तालाः, विन्यास-प्रबन्धनम् इत्यादयः

2. Spring Boot इत्यस्मिन् Zookeeper इत्यस्य एकीकरणं कुर्वन्तु

Spring Boot परियोजनायां वयं वितरितसमन्वयसेवानां कार्यान्वयनार्थं Zookeeper इत्यस्य उपयोगं कर्तुं शक्नुमः । तदनन्तरं वयं Zookeeper इत्यस्य विन्यासः, संयोजनं, उपयोगः च कथं भवति इति परिचयं कुर्मः ।

2.1.आश्रयान् योजयतु

प्रथमं स्प्रिंग बूट् इत्यत्रpom.xmlZookeeper निर्भरताः योजयन्तु:

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.7.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>5.1.0</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
2.2.Zookeeper संयोजनं विन्यस्तं कुर्वन्तु

अस्तिapplication.propertiesZookeeper संयोजनसूचनाः अत्र विन्यस्यताम्:

zookeeper.connect-string=localhost:2181
  • 1
2.3. चिडियाघरपाल सेवा लेखनम्

Zookeeper इत्यस्य संयोजनाय, संचालनाय च Zookeeper सेवावर्गं रचयन्तु:

package cn.juwatech.zookeeper;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
public class ZookeeperService {

    @Value("${zookeeper.connect-string}")
    private String connectString;

    private CuratorFramework client;

    @PostConstruct
    private void init() {
        client = CuratorFrameworkFactory.newClient(connectString, new ExponentialBackoffRetry(1000, 3));
        client.start();
    }

    public void createNode(String path, byte[] data) throws Exception {
        client.create().creatingParentsIfNeeded().forPath(path, data);
    }

    public void setData(String path, byte[] data) throws Exception {
        client.setData().forPath(path, data);
    }

    public byte[] getData(String path) throws Exception {
        return client.getData().forPath(path);
    }

    public void deleteNode(String path) throws Exception {
        client.delete().deletingChildrenIfNeeded().forPath(path);
    }

    public void close() {
        client.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
2.4.वितरितानि तालानि कार्यान्वितुं Zookeeper इत्यस्य उपयोगं कुर्वन्तु

नमूनासङ्केते वयं सरलवितरितं तालं कार्यान्वितुं Zookeeper इत्यस्य उपयोगं कथं कर्तव्यमिति दर्शयामः:

package cn.juwatech.zookeeper;

import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
public class DistributedLockService {

    @Autowired
    private ZookeeperService zookeeperService;

    private InterProcessMutex lock;

    @PostConstruct
    private void init() {
        lock = new InterProcessMutex(zookeeperService.getClient(), "/distributed-lock");
    }

    public void acquireLock() throws Exception {
        lock.acquire();
    }

    public void releaseLock() throws Exception {
        lock.release();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

3. सारांशः

अस्मिन् लेखे वितरितसमन्वयसेवानां कार्यान्वयनार्थं Spring Boot परियोजनायां Zookeeper इत्यस्य एकीकरणं कथं करणीयम् इति परिचयः कृतः अस्ति, यत्र निर्भरताविन्यासः, Zookeeper इत्यनेन सह सम्बद्धता, वितरितानां तालानां कार्यान्वयनम् इत्यादीनि प्रमुखपदार्थानि सन्ति एतेषां उदाहरणानां माध्यमेन विकासकाः वितरितप्रणालीषु Zookeeper इत्यस्य महत्त्वपूर्णां भूमिकां अधिकतया अवगन्तुं प्रयोक्तुं च शक्नुवन्ति ।

Micro-earning Taoke System 3.0 इत्यस्य सम्पादकेन निर्मितम्, पुनर्मुद्रणकाले कृपया स्रोतः सूचयन्तु!