《Zookeeper》源码分析(十一)之选举通信网络辅助类

目录

Listener

Listener用于管理服务器的选举端口。

数据结构

构造函数

run()

Listener的主要工作是创建一系列的ListenerHandler并将他们投放到线程池中等待执行,在第1步中如果想要开启多个地址:

  1. 启动的时候添加java参数-Dzookeeper.multiAddress.enabled=true
  2. 在配置文件的服务器地址添加多个端口,如server.1=localhost:2888:3888|localhost:2891:3891

如果按照这个配置,那么服务器会开启3888和3891两个端口用于选举。

ListenerHandler

数据结构

run()

ListenerHandler的工作主要是监听来自对方服务器的连接请求,一旦监听到连接请求则转交给QuorumCnxManager处理。

SendWorker

两个服务器之间一旦建立连接,就会根据sid创建一个对应的SendWorker,用于后续的选举信息发送。

数据结构

构造函数

run()

SendWorker 的工作是从QuorumCnxManager.queueSendMap队列中获取待发送的信息发送给目标服务器。

RecvWorker

RecvWorker不断地从TCP连接中读取消息并存放到QuorumCnxManager.recvQueue中。

数据结构

run()

至此,关于zookeeper选举期间的网络通信到此为止。

相关推荐
东阳马生架构1 天前
zk源码—5.请求的处理过程
zookeeper
东阳马生架构1 天前
zk源码—5.请求的处理过程二
zookeeper
东阳马生架构1 天前
zk源码—5.请求的处理过程一
zookeeper
小李独爱秋2 天前
Zookeeper的作用详解
分布式·zookeeper·云原生
东阳马生架构2 天前
zk源码—4.会话的实现原理二
zookeeper
东阳马生架构3 天前
zk源码—4.会话的实现原理
zookeeper
IT成长日记3 天前
【Hadoop入门】Hadoop生态之ZooKeeper简介
大数据·hadoop·zookeeper
小沈同学呀3 天前
微服务注册中心选择指南:Eureka vs Consul vs Zookeeper vs Nacos
微服务·zookeeper·eureka·nacos·consul