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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zeekooper集群搭建_How to do - ZooKeeper集群搭建(我见过最详细的完整教学)

發布時間:2025/3/13 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zeekooper集群搭建_How to do - ZooKeeper集群搭建(我见过最详细的完整教学) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ZooKeeper集群介紹

最典型集群模式: Master/Slave 模式(主備模式)。在這種模式中,通常 Master服務器作為主服務器提供寫服務,其他的 Slave 服務器從服務器通過異步復制的方式獲取 Master 服務器最新的數據提供讀服務。

但是,在 ZooKeeper 中沒有選擇傳統的 Master/Slave 概念,而是引入了Leader、Follower 和 Observer 三種角色。如下圖所示:

ZooKeeper 集群中的所有機器通過一個 Leader 選舉過程來選定一臺稱為 “Leader” 的機器,Leader 既可以為客戶端提供寫服務又能提供讀服務。除了 Leader 外,Follower 和 Observer 都只能提供讀服務。Follower 和 Observer 唯一的區別在于 Observer 機器不參與 Leader 的選舉過程,也不參與寫操作的“過半寫成功”策略,因此 Observer 機器可以在不影響寫性能的情況下提升集群的讀性能。

ZooKeeper集群搭建

為了獲得可靠的 ZooKeeper 服務,用戶應該在一個集群上部署 ZooKeeper 。只要集群上大多數的ZooKeeper 服務啟動了,那么總的 ZooKeeper 服務將是可用的。另外,最好使用奇數臺機器, 因為zookeeper集群是以宕機個數過半才會讓整個集群宕機的。 如果 zookeeper擁有 5 臺機器,那么它就能處理 2 臺機器的故障了。

【注意】 搭建zookeeper集群時,一定要先停止已經啟動的zookeeper節點。

Step1:配置zookeeper

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/etc/zookeeper/data

dataLogDir=/etc/zookeeper/logs

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

autopurge.purgeInterval=1

minSessionTimeout=2

maxSessionTimeout=20

server.1=192.168.1.127:2888:3888

server.2=192.168.1.128:2888:3888

server.3=192.168.1.139:2888:3888

server.4=192.168.1.130:2888:3888:observer

server.5=192.168.1.131:2888:3888:observerautopurge配置

客戶端在與zookeeper交互過程中會產生非常多的日志,而且zookeeper也會將內存中的數據作為snapshot保存下來,這些數據是不會被自動刪除的,這樣磁盤中這樣的數據就會越來越多。不過可以通過這兩個參數來設置,讓zookeeper自動刪除數據。

autopurge.purgeInterval:指定自動清理快照文件和事務日志文件的時間,單位為h,默認為0表示不自動清理,這個時候可以使用腳本zkCleanup.sh手動清理。如果不清理則磁盤空間占用越來越大。

autopurge.snapRetainCount:用于指定保留快照文件和事務日志文件的個數,默認為3。

不過如果你的集群是一個非常繁忙的集群,然后又碰上這個刪除操作,可能會影響zookeeper集群的性能,所以一般會讓這個過程在訪問低谷的時候進行,但是遺憾的是zookeeper并沒有設置在哪個時間點運行的設置,所以有的時候我們會禁用這個自動刪除的功能,而做一些其他手段,比如手動或者自動地在凌晨做清理工作。Server.ID配置

server.id=IP/Host : port1 : port2

id:用來配置ZK集群中的各節點,并建議id的值和myid保持一致,【注意】下文會講myid的配置。

IP/Host: 服務器的 IP 或者是與 IP 地址做了映射的主機名

port1:Leader和Follower或Observer交換數據使用

port2:用于Leader選舉minSessionTimeout, maxSessionTimeout

一般,客戶端連接zookeeper的時候,都會設置一個session timeout,如果超過這個時間client沒有與zookeeper server有聯系,則這個session會被設置為過期(如果這個session上有臨時節點,則會被全部刪除,這就是實現集群感知的基礎)。但是這個時間不是客戶端可以無限制設置的,服務器可以設置這兩個參數來限制客戶端設置的范圍。

Step2: 創建myid文件

上文我們在每個zookeeper服務器的配置文件里配置了這樣的信息:

server.1=192.168.1.127:2888:3888

server.2=192.168.1.128:2888:3888

server.3=192.168.1.139:2888:3888

server.4=192.168.1.130:2888:3888:observer

server.5=192.168.1.131:2888:3888:observer

server.id,這個id就是指zookeeper服務器在集群中的編號,我們需要把這個id寫入到myid文件中,這個myid值在zookeeper集群中的選舉過程中會做一個非常大的作用。比如在192.168.120.78這臺機器中首先創建myid文件(dataDir目錄,如上配置是/etc/zookeeper/data),然后執行下列操作:

echo "1" > /etc/zookeeper/data/myid

Step3:啟動zookeeper服務,并查看狀態

首先查看192.168.1.126的zookeeper服務的狀態:

root@ubuntu:/home/lizhiyong/source/zookeeper-3.4.12/bin# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/lizhiyong/source/zookeeper-3.4.12/bin/../conf/zoo.cfg

Mode: follower

查看192.168.1.128的zookeeper服務的狀態

root@ubuntu:/home/lee/source/zookeeper-3.4.12/bin# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/lee/source/zookeeper-3.4.12/bin/../conf/zoo.cfg

Mode: leader

查看192.168.1.130的zookeeper服務的狀態

root@ubuntu:/home/lizhiyong/source/zookeeper-3.4.12/bin# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/lizhiyong/source/zookeeper-3.4.12/bin/../conf/zoo.cfg

Mode: follower

Step4: 加入觀察者節點

觀察者節點為192.168.1.134,myid為4

第一步,在觀察者節點的配置文件中增加以下內容:

peerType=observer

第二步,在其它的節點上修改配置添加

server.4=192.168.1.134:2888:3888:observer

查看狀態:

root@ubuntu:/home/lizhiyong/source/zookeeper-3.4.12/bin# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/lizhiyong/source/zookeeper-3.4.12/bin/../conf/zoo.cfg

Mode: observer

視頻教程:https://www.bilibili.com/video/av58475217/?www.bilibili.com

總結

以上是生活随笔為你收集整理的zeekooper集群搭建_How to do - ZooKeeper集群搭建(我见过最详细的完整教学)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。