zookeeper选举(三)-WorkerSender
Messenger.WorkerSender 发送投票信息工作线程 class WorkerSender extends ZooKeeperThread { volatile boolean stop; QuorumCnxManager manager; WorkerSender(QuorumCnxManager manager) { super("WorkerSender"); this.stop = false; this.manager = manager; } public void run() { while (!stop) { try { ToSend sendMsg = sendQueue.poll(3000, TimeUnit.MILLISECONDS); if (sendMsg == null) continue; process(sendMsg); } catch (InterruptedException e) { break; } } LOG.info("WorkerSender is down"); } void process(ToSend sendMsg) { ByteBuffer requestBuffer = buildMsg(sendMsg.state.ordinal(), sendMsg.leader, sendMsg.zxid, sendMsg.electionEpoch, sendMsg.peerEpoch); manager.toSend(sendMsg.sid, requestBuffer); } }
posted on 2020-09-30 15:38 www_practice 阅读(110) 评论(0) 编辑 收藏 举报