91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper如何安裝配置

發布時間:2021-11-16 10:20:28 來源:億速云 閱讀:184 作者:小新 欄目:云計算

這篇文章主要介紹了 Zookeeper如何安裝配置,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、簡介

             Zookeeper 是分布式服務框架,主要是用來解決分布式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等等。

ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

ZooKeeper包含一個簡單的原語集, [1]  提供Java和C的接口。

ZooKeeper代碼版本中,提供了分布式獨享鎖、選舉、隊列的接口,代碼在zookeeper-3.4.3\src\recipes。其中分布鎖和隊列有Java和C兩個版本,選舉只有Java版本。

二、工作原理

       Zookeeper的核心是廣播,這個機制保證了各個Server之間的同步。實現這個機制的協議叫做Zab協議。Zab協議有兩種模式,它們分別是恢復模式(選主)和廣播模式(同步)。當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,當領導者被選舉出來,且大多數Server完成了和leader的狀態同步以后,恢復模式就結束了。狀態同步保證了leader和Server具有相同的系統狀態。為了保證事務的順序一致性,zookeeper采用了遞增的事務id號(zxid)來標識事務。所有的提議(proposal)都在被提出的時候加上了zxid。實現中zxid是一個64位的數字,它高32位是epoch用來標識leader關系是否改變,每次一個leader被選出來,它都會有一個新的epoch,標識當前屬于那個leader的統治時期。低32位用于遞增計數。
每個Server在工作過程中有三種狀態:
LOOKING:當前Server不知道leader是誰,正在搜尋。
LEADING:當前Server即為選舉出來的leader。
FOLLOWING:leader已經選舉出來,當前Server與之同步。

三、基本配置

zookeeper的安裝和之前的一樣,也是有3種安裝方式。分為單機、偽集群和集群模式。

1、首先去apache官網下載zookeeper,目前最新版是3.4.8 ,http://www.apache.org/dyn/closer.cgi/zookeeper/

2、解壓到你需要安裝的目錄,例如我是放在/home/admin1/下載/zookeeper-3.4.8下面。

3、在conf目錄在做配置:

zoo.cfg

(1)如果你是單機模式的話,就需要做如下配置就可以了。

tickTime=2000
dataDir=/home/admin1/下載/zookeeper-3.4.8/data
dataLogDir=/home/admin1/下載/zookeeper-3.4.8/logs
clientPort=2181

(2)  如果你是偽分布模式的話,則需要做如下配置:zoo.cfg

所謂偽集群, 是指在單臺機器中啟動多個zookeeper進程, 并組成一個集群. 以啟動3個zookeeper進程為例.

tickTime=2000
initLimit=10
syncLimit=5

dataDir=/home/admin1/下載/zookeeper-3.4.8/tmp/zookeeper

clientPort=2181

server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
 
 

1 initLimit: zookeeper集群中的包含多臺server, 其中一臺為leader, 集群中其余的server為follower. initLimit參數配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數設置為10, 說明時間限制為10倍tickTime, 即10*2000=20000ms=20s.2 syncLimit: 該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即10000ms.3 server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由于配置的是偽集群模式, 所以各個server的B, C參數必須不同.參照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort參數即可.在之前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應./home/admin1/下載/zookeeper1/data/myid文件中寫入1,/home/admin1/下載/zookeeper2/data/myid文件中寫入2,/home/admin1/下載/zookeeper3/data/myid文件中寫入3.分別進入/home/admin1/下載//zookeeper1/bin, /home/admin1/下載//zookeeper2/bin, /home/admin1/下載//zookeeper3/bin三個目錄, 啟動server.

bin/zkServer.sh  start


關閉就是后面是stop.
啟動成功后用jps查看進程,
有ZooKeeperMain就是對的(若沒有配置其他
機器的情況下)


可以啟動客戶端測試下:

bin/zkCli.sh -server localhost:2181

Zookeeper如何安裝配置
(注:如果是遠程連接,把localhost換成指定的IP即可)

然后,就可以用一些基礎命令,比如 ls ,create ,delete ,get 來測試了(關于這些命令,大家可以查看文檔)

(3)  集群模式的配置和偽集群基本一致.
由于集群模式下, 各server部署在不同的機器上, 因此各server的conf/zoo.cfg文件可以完全一樣.

四、開發測試

測試連接,我們可以有3種方法。

4.1  zkCli.sh

可以使用幫組命令進入各種操作。

4.2、在eclipse上操作:

新建java工程,需要導入zookeeper里面的jar包 ,zookeeper-3.4.8.jar。

新建createSession.java

public class CreateSession implements Watcher { 

	private static ZooKeeper zookeeper;
	public static void main(String[] args) throws IOException, InterruptedException {
		zookeeper = new ZooKeeper("localhost:2181",5000,new CreateSession());
		System.out.println(zookeeper.getState());
		
		Thread.sleep(Integer.MAX_VALUE);
	}
	
	private void doSomething(){
		
		System.out.println("do something");
	}
	@Override
	public void process(WatchedEvent event) {
	
		System.out.println("收到事件:"+event);
		if (event.getState()==KeeperState.SyncConnected){
			
			if (event.getType()==EventType.None && null==event.getPath()){
				doSomething();
			}
		}
	}
	
}

還需要一個接口:

MyWatcher.java

public class MyWatcher implements Watcher {

	@Override
	public void process(WatchedEvent event) {
		// TODO Auto-generated method stub

	}

}


運行結果如下:代表連接成功了。

Zookeeper如何安裝配置

4.3 使用ZKClient 

在github中下載源碼包,https://github.com/sgroschupf/zkclient

在新建的eclipse項目中添加庫依賴,就可以了。

測試代碼

import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.serialize.SerializableSerializer;

public class CreateSession {

	public static void main(String[] args) {
		ZkClient zc = new ZkClient("localhost",10000,10000,new SerializableSerializer());
		System.out.println("conneted ok!");
	}
	
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ Zookeeper如何安裝配置”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邢台县| 西平县| 西和县| 清新县| 江川县| 宜昌市| 遂昌县| 清水县| 民权县| 建昌县| 吴堡县| 灌南县| 玉溪市| 太仆寺旗| 小金县| 通榆县| 三都| 开化县| 洞口县| 南木林县| 吐鲁番市| 辽阳市| 任丘市| 海阳市| 重庆市| 噶尔县| 庆城县| 普定县| 陆良县| 岳阳县| 蓬莱市| 榆社县| 张掖市| 万年县| 武强县| 大姚县| 诸暨市| 安康市| 宁波市| 思南县| 阿尔山市|