QuorumPeerMain
2022-05-29 23:58:24 0 举报
zk选举流程
作者其他创作
大纲/内容
ServerCnxnFactory.createFactory();
注册服务端连接对象,默认是NIO
获取本服务节点对象
解析配置文件加载到内存
ManagedUtil.registerLog4jMBeans();
清理快照任务文件
启动服务
启动监听
adminServer.start();
初始化选举管理器
quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory()));
messenger.start();
绑定业务处理CnxnChannelHandler
ss = new ServerSocket();ss.bind(addr);client = ss.accept();
WorkerSender.run()
createCnxnManager();
initializeAndRun
config.parse(args[0]);
默认选举类型为3
启动jetty服务,默认端口8080,用来查询服务端信息
quorumPeer.setCnxnFactory(cnxnFactory);
启动快速选举
运行接受选票线程
createElectionAlgorithm(electionType);
初始化集群选举leader相关数据
从应用层发送队列取出选票
将上面创建的初始服务连接对象放入本服务对象
初始化内存数据库对象
注册JMX
listener.start();
从传输层接受队列取出选票
getQuorumPeer()
startServerCnxnFactory();
如是使用netty通讯,需要在启动时添加参数Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
quorumPeer.start();
this.wrThread.start();
QuorumPeerMain.main服务器启动主类
运行发送选票线程
purgeMgr.start();
接受连接
loadDataBase();
NettyServerCnxnFactory()
receiveConnection(client);
listener.run()
runFromConfig(config);
启动netty服务
在选举端口监听连接选举使用普通的socket(BIO)
加载文件数据到内存
初始化netty线程组bossGroup和workerGroup
startLeaderElection();
this.wsThread.start();
quorumPeer.setElectionType(config.getElectionAlg());
pipeline.addLast(\"servercnxnfactory\
WorkerReceiver.run()
收藏
0 条评论
下一页