posts - 165,  comments - 28,  trackbacks - 0
为了保障线上zk服务正常,需要平滑进行扩容或者缩容
原始配置如下:
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
将所有机器的conf/zoo.cfg文件中 server.6修改为server.10, 目的是为新增的机器编码空出位置。
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
同时将leader的机器myid由6修改为10[必须]
myid位置可以查看conf/zoo.cfg中的dataDir=/letv/data/zookeeper
按照myid的从小到大顺序重启zookeeper,1、3、4、5、10.
如果不修改myid直接启动提示已启动,但实际进程没有起来。
配置-myid
在dataDir里会放置一个myid文件,里面就一个数字,用来唯一标识这个服务。这个id是很重要的,一定要保证整个集群中唯一。zookeeper会根据这个id来取出server.x上的配置。比如当前id为1,则对应着zoo.cfg里的server.1的配置。
如果myid跟server.id不匹配,启动zk,日志会抛出如下错误:
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 
当还剩下一台follower未重启时,通过nc命在leader机器上查看,会提示This ZooKeeper instance is not currently serving requests,此时剩余2台机器,违反了zk集群“过半存活”原则,处于不可用状态。
[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
重启后,会选举server.5作为leader,此时因server.10未重启,与server.10之间没有通讯连接,所以将server.10重启后变为follower。 此时,重启server.5上的zookeeper,重新选举server.10为leader即可。
先扩容到7台,然后缩容为2台,最终配置如下:
#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

参考资料:
http://siye1982.github.io/2015/06/16/zookeeper/
http://www.cnblogs.com/yuyijq/p/3391945.html
posted on 2017-07-19 18:10 David1228 阅读(335) 评论(0)  编辑  收藏 所属分类: 性能优化NettyZK

只有注册用户登录后才能发表评论。


网站导航:
 

<2017年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(3)

随笔分类

随笔档案

文章档案

新闻分类

新闻档案

相册

收藏夹

Java

Linux知识相关

Spring相关

云计算/Linux/虚拟化技术/

友情博客

多线程并发编程

开源技术

持久层技术相关

搜索

  •  

积分与排名

  • 积分 - 262822
  • 排名 - 183

最新评论

阅读排行榜

评论排行榜