為了保障線上zk服務(wù)正常,需要平滑進(jìn)行擴(kuò)容或者縮容
原始配置如下:
server.1=10.200.93.103:2888:3888
server.3=10.200.93.108:2888:3888
server.4=10.135.29.163:2888:3888
server.5=10.135.29.164:2888:3888
server.6=10.176.30.87:2888:3888 #leader
將所有機(jī)器的conf/zoo.cfg文件中 server.6修改為server.10, 目的是為新增的機(jī)器編碼空出位置。
server.1=10.200.93.103:2888:3888
server.3=10.200.93.108:2888:3888
server.4=10.135.29.163:2888:3888
server.5=10.135.29.164:2888:3888
server.10=10.176.30.87:2888:3888 #leader
同時(shí)將leader的機(jī)器myid由6修改為10[必須]
myid位置可以查看conf/zoo.cfg中的dataDir=/letv/data/zookeeper
按照myid的從小到大順序重啟zookeeper,1、3、4、5、10.
如果不修改myid直接啟動(dòng)提示已啟動(dòng),但實(shí)際進(jìn)程沒(méi)有起來(lái)。
配置-myid
在dataDir里會(huì)放置一個(gè)myid文件,里面就一個(gè)數(shù)字,用來(lái)唯一標(biāo)識(shí)這個(gè)服務(wù)。這個(gè)id是很重要的,一定要保證整個(gè)集群中唯一。zookeeper會(huì)根據(jù)這個(gè)id來(lái)取出server.x上的配置。比如當(dāng)前id為1,則對(duì)應(yīng)著zoo.cfg里的server.1的配置。
如果myid跟server.id不匹配,啟動(dòng)zk,日志會(huì)拋出如下錯(cuò)誤:
2014-05-13 14:12:58,801 [myid:] – ERROR [main:QuorumPeerMain@85] – Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing
當(dāng)還剩下一臺(tái)follower未重啟時(shí),通過(guò)nc命在leader機(jī)器上查看,會(huì)提示This ZooKeeper instance is not currently serving requests,此時(shí)剩余2臺(tái)機(jī)器,違反了zk集群“過(guò)半存活”原則,處于不可用狀態(tài)。
[root@vm-30-87-pro01-zwdx conf]# echo mntr | nc localhost 2181
zk_version 3.4.6-1569965, built on 02/20/2014 09:09 GMT
zk_avg_latency 0
zk_max_latency 331
zk_min_latency 0
zk_packets_received 273980621
zk_packets_sent 273931833
zk_num_alive_connections 186
zk_outstanding_requests 0
zk_server_state leader
zk_znode_count 9402
zk_watch_count 2975
zk_ephemerals_count 1563
zk_approximate_data_size 1497826
zk_open_file_descriptor_count 262
zk_max_file_descriptor_count 600000
zk_followers 2
zk_synced_followers 2
zk_pending_syncs 0
[root@vm-30-87-pro01-zwdx conf]# echo mntr | nc localhost 2181
This ZooKeeper instance is not currently serving requests
重啟后,會(huì)選舉server.5作為leader,此時(shí)因server.10未重啟,與server.10之間沒(méi)有通訊連接,所以將server.10重啟后變?yōu)閒ollower。 此時(shí),重啟server.5上的zookeeper,重新選舉server.10為leader即可。
先擴(kuò)容到7臺(tái),然后縮容為2臺(tái),最終配置如下:
#server.1=10.200.93.103:2888:3888
#server.3=10.200.93.108:2888:3888
server.4=10.135.29.163:2888:3888
server.5=10.135.29.164:2888:3888
server.6=10.180.1.204:2888:3888
server.7=10.180.1.196:2888:3888
server.10=10.176.30.87:2888:3888
參考資料:
posted on 2017-07-19 18:10
David1228 閱讀(3432)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
性能優(yōu)化 、
Netty 、
ZK