大数据:zookeeper面试题收集(三)

Zookeeper集群中服务器之间是如何通信的

Followerleader之间的通信主要是因为Follower接收到像(create, delete, setData, setACL, createSession, closeSession, sync)这样一些需要让leader来协调最终结果的命令,将会导致Followerleader之间产生通信。由于leaderFollower之间的关系式一对多的关系,非常适合client/server模式,因此他们之间是采用c/s模式,由leader创建一个socket server,监听各Follower的协调请求。

Zookeeper集群如何工作

https://blog.csdn.net/WYpersist/article/details/80189732

Zookeeper选举机制

https://blog.csdn.net/WYpersist/article/details/80189709

Leader服务器是整个zookeeper集群工作的核心,负责进行选举投票的发起和决议,更新系统状态。

Follower服务器是zookeeper集群状态的跟随者,用于接收客户端的请求并向客户端返回结果,在选举过程中参与投票。

1.每个Sever服务器启动以后都会询问其他的Sever服务器要投票给谁

2.对于其他服务器的询问,服务器每次都会根据自己的状态恢复自己推荐的Leaderid和上一次处理事务的zxid,但是系统启动的时候每个服务器都会推荐自己的

3.自己服务器收到其他所有的服务器回复以后,就计算出zxid最大的那个服务器,并将这个服务器相关信息设置成下一次要投票的Sever

4.计算的过程中获得的票数最多,且票数要过半数的服务器就选为Leader,否则要一直继续这个选举的过程,知道Leader被选举出来

5.选出的Leader开始等待其他服务器Follower的连接

6.Follower连接Leader将最大的zxid发送给Leader

7.Leader根据Follwerzxid来确定同步点,,完成同步后通知Follower已经成为update(现时)状态

8.Follower收到update消息后,就可以接受Client的请求服务了。

zookeeper-端口说明、作用

Zookeeper不同节点之间同步和通信的端口:选举端口(选举leader)

一、zookeeper有三个端口(可以修改)

12181

23888

32888

二、3个端口的作用

12181:对cline端提供服务

23888:选举leader使用

32888:集群内机器通讯使用(Leader监听此端口)

三、部署时注意

1、单机单实例,只要端口不被占用即可

2、单机伪集群(单机,部署多个实例),三个端口必须修改为组组不一样

如:myid1 : 2181,3888,2888

myid2 : 2182,3788,2788

myid3 : 2183,3688,2688

3、集群(一台机器部署一个实例)

四、集群为大于等于3个基数,如 357....,不宜太多,集群机器多了选举和数据同步耗时时长长,不稳定。目前觉得,三台选举+Nobserve很不错。

为什么zookeeper集群是单数?

https://blog.csdn.net/wypersist/article/details/80189573

猜你喜欢

转载自blog.csdn.net/wypersist/article/details/80189767