zookeeper选举
2023-09-13 11:08:53 0 举报
zookeeper选举流程,zookeeper选举原理
作者其他创作
大纲/内容
increaseClock
使用了简单工厂模式,默认是nio,可以配置为netty
writeAt 2
lookingforleader
put(\"name\
loadDataBase()
Clock: 2
Client
Clock:1
Blue
Clock:2
Clock:3key:\"title@3\"value:\"Microservices\"
recvqueue <Notification>
WorkerSend
QuorumPeerConfig.runFromConfig
放入传输层的发送队列
解析配置文件
chooseMax(\"1\
Clock:4
put(\"title\
否
Clock: 3
initializeAndRun
writeAt 3
每一个发送者一个队列,一个发送线程,主要是为了互不影响,不因为一个发送失败影响其它发送
初始化投票实例,并设置参数
WorkerReceiver
不同的角色会从队列中取数据,进行处理
定时处理数据文件,快照文件
QuorumPeerConfig.config()
startLeaderElection()
sendqueue <ToSend>
Green
writtenAt:3
((newEpoch > curEpoch) || ((newEpoch == curEpoch) && ((newZxid > curZxid) || ((newZxid == curZxid) && (newId > curId)))))
java nio和netty(异步网络通信框架(对NIO的进一步封装))
Clock: 1
write(\"title\
应用层
Clock:3key:\"name@3\"value:\"Alice\"
ZooKeeperServerMain.main
chooseMax(\"3\
startServerCnxnFactory()
默认使用3类型的选举策略
如果是自己
QuorumPeerMain
启动管理端口
ServerCnxnFactory = ServerCnxnFactory.createFactory()
构建消息(ByteBuffer),发送消息
QuorumPeer quorumPeer = getQuorumPeer()
super.start()
BeginTransactoin
FastLeaderElection
放入接收队列recvQueue
DatadirCleanupManager.start()
Coordinator
是
是否是单机
process(ToSend m)
Clock:2key:\"name@2\"value:\"Alice\"
quorumPeer.start()
adminServer.start()
write(\"name\
没有配置为单机,且节点数量大于1
收藏
0 条评论
下一页