日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zookeeper(一)-- 简介以及单机部署和集群部署

發(fā)布時間:2024/8/22 编程问答 60 如意码农
生活随笔 收集整理的這篇文章主要介紹了 Zookeeper(一)-- 简介以及单机部署和集群部署 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、分布式系統(tǒng)

  由多個計算機(jī)組成解決同一個問題的系統(tǒng),提高業(yè)務(wù)的并發(fā),解決高并發(fā)問題。

  

二、分布式環(huán)境下常見問題

  1.節(jié)點失效

  2.配置信息的創(chuàng)建及更新

  3.分布式鎖

三、Zookeeper

  1.定義

    Zookeeper是一個高性能,分布式的,開源分布式應(yīng)用協(xié)調(diào)服務(wù)。所謂的分布式協(xié)調(diào)服務(wù),就是在集群的節(jié)點中進(jìn)行可靠的消息傳遞,來協(xié)調(diào)集群的工作。

    Zookeeper之所以能夠?qū)崿F(xiàn)分布式協(xié)調(diào)服務(wù),靠的就是它能夠保證分布式數(shù)據(jù)一致性。所謂的分布式數(shù)據(jù)一致性,指的就是可以在集群中保證數(shù)據(jù)傳遞的一致性。

    Zookeeper能夠提供的分布式協(xié)調(diào)服務(wù)包括:數(shù)據(jù)發(fā)布訂閱、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、分布式鎖、分布式隊列等功能

  2.應(yīng)用場景

    配置中心

    負(fù)載均衡

    統(tǒng)一命名服務(wù)

    共享鎖

四、Zookeeper的特點

  Zookeeper工作在集群中,對集群提供分布式協(xié)調(diào)服務(wù),它提供的分布式協(xié)調(diào)服務(wù)具有如下的特點:

  • 順序一致性

    從同一個客戶端發(fā)起的事務(wù)請求,最終將會嚴(yán)格按照其發(fā)起順序被應(yīng)用到zookeeper中

  • 原子性

    所有事務(wù)請求的處理結(jié)果在整個集群中所有機(jī)器上的應(yīng)用情況是一致的

  • 單一視圖

    無論客戶端連接的是哪個zookeeper服務(wù)器,其看到的服務(wù)端數(shù)據(jù)模型都是一致的。

  • 可靠性

    一旦服務(wù)端成功的應(yīng)用了一個事務(wù),并完成對客戶端的響應(yīng),那么該事務(wù)所引起的服務(wù)端狀態(tài)變更將會一直保留下來,除非有另一個事務(wù)又對其進(jìn)行了改變。

  • 實時性

    zookeeper并不是一種強(qiáng)一致性,只能保證順序一致性和最終一致性,只能稱為達(dá)到了偽實時性。

五、基本概念

  1.數(shù)據(jù)模型

    zookeepei中可以保存數(shù)據(jù),正是利用zookeeper可以保存數(shù)據(jù)這一特點,我們的集群通過在zookeeper里存取數(shù)據(jù)來進(jìn)行消息的傳遞。

    zookeeper中保存數(shù)據(jù)的結(jié)構(gòu)非常類似于文件系統(tǒng)。都是由節(jié)點組成的樹形結(jié)構(gòu)。不同的是文件系統(tǒng)是由文件夾和文件來組成的樹,而zookeeper中是由znode來組成的樹。

    每一個ZNODE里都可以存放一段數(shù)據(jù),znode下還可以掛載零個或多個子znode節(jié)點,從而組成一個樹形結(jié)構(gòu)。(結(jié)構(gòu)如下所示)

    

  2.集群角色

  (1)Leader:接受所有Follower的提案請求并統(tǒng)一協(xié)調(diào)發(fā)起提案的投票,負(fù)責(zé)與所有的Follower進(jìn)行內(nèi)部數(shù)據(jù)交換(同步)

  (2)Follower:直接為客戶端服務(wù)并參與提案的投票,同時與Leader進(jìn)行數(shù)據(jù)交換(同步)

  (3)Observer:直接為客戶端服務(wù)但不參與提案的投票,同時也與Leader進(jìn)行數(shù)據(jù)交換(同步)

  

  3.會話

  4.版本號

  5.Acl權(quán)限控制

六、單機(jī)部署

  1.下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/,通過

  wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz

  下載到Linux

  2.將/usr/java/zookeeper/server1/zookeeper-3.4.9/conf下的zoo_sample.cfg文件復(fù)制為zoo.cfg,修改zoo.cfg,修改dataDir( 數(shù)據(jù)快照存儲目錄) 和 增加dataLogDir(保存Log的目錄)

  

  3.通過bin/zkServer.sh start|stop|restart|status 啟動、停止、重啟、查詢狀態(tài)

  

  4.通過bin/zkCli.sh [-timeout 0 -r] -server host:port(host即IP地址,peot即端口號)

  

七、集群部署(這里使用偽集群)

  1.在/usr/java中新建zookeeper目錄,然后在zookeeper目錄下新建 server1,server2,server3目錄

  mkdir /usr/java/zookeeper/server1
  mkdir /usr/java/zookeeper/server1
  mkdir /usr/java/zookeeper/server1

  2.將下載的tar文件復(fù)制到新建的server1,server2,server3中,然后解壓到這三個目錄下

  3.修改zoo.cfg文件

   

     第一個端口號是Leader和Follower之間通訊的端口號,即數(shù)據(jù)同步的端口號,第二個端口號是Leader選舉的端口號

  4.分別復(fù)制zoo.cfg到server2/zookeeper-3.4.9/conf 和 server3/zookeeper-3.4.9/conf下

  5.修改server2/zookeeper-3.4.9/conf下的zoo.cfg,只修改dataDir、dataLogDir和clientPort即可,下圖server點后面的數(shù)字就是myid,即進(jìn)程號,用于選舉

     

  6.同理,修改server3/zookeeper-3.4.9/conf下的zoo.cfg,將dataDir改為server3下面的,將dataLogDir改為server3下的,將clientPort改為2183

  7.在server1,server2,server3中新建data目錄,并且在data目錄下新建data和log目錄

  8.在server1/data/data下編輯myid文件,即 vi myid,在里面寫1,

     在server2/data/data下編輯myid文件,即 vi myid,在里面寫2,

在server3/data/data下編輯myid文件,即 vi myid,在里面寫3,

     這里對應(yīng)上圖中server點后面的數(shù)字,即進(jìn)程號。

   

   9.啟動server1,

   cd /usr/java/zookeeper/server1/zookeeper-3.4.9/bin 
 
./zkServer.sh start

  ,啟動成功后,然后通過客戶端連接:./zkCli.sh -server localhost:2181,可以看到如下:

    

    說明錯誤了。在集群中,必須有一半的服務(wù)正常,客戶端才可以正常連接。

  10.先關(guān)閉客戶端,然后啟動server2,再重新連接

   cd /usr/java/zookeeper/server2/zookeeper-3.4.9/bin (進(jìn)入server2的目錄)
  
  ./zkServer start (啟動server2)
  
  ./zkCli.sh -server localhost:2181(客氣客戶端,連接服務(wù)端)

   可以看到如下,則說明成功。

     

  11.再啟動server3,用客戶端測試連接。OK,則集群成功。

  12.查看哪一個是Leader,哪一個是Follower,進(jìn)入zookeeper的bin目錄下,輸入zkServer.sh status即可查看

     

   

總結(jié)

以上是生活随笔為你收集整理的Zookeeper(一)-- 简介以及单机部署和集群部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。