ZooKeeper使用(3)-- ZooKeeper的集群部署(Linux)

紧接上文所说,在上一篇文章中我们讲述了standalone模式的zookeeper服务是如何启动的,在这篇文章我们说说zookeeper集群是怎么搭建的,并且对其中的注意点进行说明,下面就开始正题。


因为机器不够,这里我们就在一台机器上来部署一个zookeeper集群,暂且称之为伪集群吧,毕竟真实的生产环境,如果把一个zookeeper集群都部署在现网的机器上,那么机器出现了问题,那么整个zookeeper服务都不可用了。所以在真实生产环境,大家还是把zookeeper集群中的各个zookeeper服务部署在不同的机器上。


首先我们在机器上创建三个目录,zookeeper-3181,zookeeper-4181,zookeeper-5181,将standalone模式下的文件都拷贝一份到各个目录下,这里我们在本机的3181、4181和5181端口启动三个服务,我们在拷贝之后需要做的有以下几件事情:

(1)修改conf/zoo.cfg文件中的clientPort(原来设置是2181端口),分别设置为3181、4181和5181;

(2)在conf/zoo.cfg底部增加zookeeper集群配置,如下

server.1=localhost:2877:3877
server.2=localhost:2878:3878
server.3=localhost:2879:3879

(备注:这里的端口号需要netstat -ano | grep 3181类似的方式判断端口是否被占用,如果比占用需要进行调整。)

(3)需要在conf/zoo.cfg中dataDir配置的目录下创建myid文件,用于标识zookeeper服务;


确保完成了上面的3项修改后,接下来就可以启动各个zookeeper服务了。如下所示:



我们可以看到这时候zookeeper集群便正常的启动起来了,而且从通过./zkServer.sh status命令还可以查询zookeeper在集群中的角色,如leader、follower。


下面我们看看zookeeper集群能否正常在某个zookeeper服务挂掉之后整个集群能否正常提供服务。

这里我们把4181端口的zookeeper服务给kill掉,然后看看其他两个zookeeper服务能否主动自动选举出新的leader。



使用kill关掉4181端口的zookeeper进程,



这时候,我们再查看一下其他两个zookeeper服务在集群中的状态:


从截图可以看出来,这时候5181端口的服务成了新的leader,表明整个集群能否正常的进行leader选举,从而保证了当集群中的某个zookeeper服务挂掉之后其他zookeeper服务能够继续提供相关服务。



我们看到,这时候我们重新启动4181端口的zookeeper服务,它会自动成为原来zookeeper集群中的follower角色。


如果想了解我最新的博文,请关注我的博客。如果想看到更多相关技术文章并愿意支持我继续写下去,欢迎给我打赏,对您的打赏我表示非常感谢。吐舌头



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值