如何做挂qq的网站,设计网站公司搜索y湖南岚鸿知名,青岛网络公司老板是谁,h5做怎么做微网站在上一篇文章中讲到QuorumCnxManager#xff0c;它负责zookeeper服务器在选举期间最底层的网络通信#xff0c;整个网络涉及到的类如下#xff1a; 整个网络建立的过程如下#xff1a;
选举前创建好QuorumCnxManager实例#xff0c;并在QuorumCnxManager构造函数中创建好…在上一篇文章中讲到QuorumCnxManager它负责zookeeper服务器在选举期间最底层的网络通信整个网络涉及到的类如下 整个网络建立的过程如下
选举前创建好QuorumCnxManager实例并在QuorumCnxManager构造函数中创建好Listener实例调用Listener.start()方法启动监听线程Listener获得CPU资源后执行run()方法建立ListenerHandler开始监听来自其他服务器的连接请求当ListenerHandler监听到来自其他服务器的连接请求创建当前服务器与目标服务器一对一的SendWorker和RecvWorker并将SendWorker保存到QuorumCnxManager.senderWorkerMap中进行选举的时候会向集群中的所有服务器发送自己的选票通过QuorumCnxManager.toSend()方法向QuorumCnxManager.queueSendMap中存放待发送的信息等待SendWorker异步发送在QuorumCnxManager.toSend()中会检测senderWorkerMap中是否存在目标服务器的发送线程SendWorker如果不存在则调用connectOne()方法创建连接connectOne()中会创建QuorumConnectionReqThread线程并将其放入connectionExecutor线程池中异步建立连接当QuorumConnectionReqThread获得CPU资源后执行run()方法接着调用QuorumCnxManager.initiateConnection()方法进行连接连接建立成功后创建一对一的SendWorker和RecvWorker并将SendWorker保存到QuorumCnxManager.senderWorkerMap中RecvWorker接收到来自客户端的投票消息将消息以Message的格式保存在QuorumCnxManager.recvQueue中选举期间会循环调用QuorumCnxManager.pollRecvQueue()方法从QuorumCnxManager.recvQueue中获取来自其他服务器的投票并进行处理。
QuorumCnxManager的工作原理大致如此下文开始逐一具体分析这些类。