zookeeper源码学习笔记
近战法师夏洛特
这个作者很懒,什么都没留下…
展开
-
zk服务端代码启动流程
以下是启动的时序图:以上两张是zk源码单机下启动的流程 下面对的每一个流程进行描述第一张图1. 在zk的启动脚本中zkServer.cmd中setlocalcall "%~dp0zkEnv.cmd"set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMainecho onecho %JAVA% "-D...原创 2019-02-11 10:40:54 · 835 阅读 · 0 评论 -
zookeeper请求处理流程
zk的服务端处理接入请求的时候 使用多种工厂 如果没有在配置文件中进行申明则使用默认配置 这里默认的工厂是NIOServerCnxnFactory 我们下面的分析围绕NIOServerCnxnFactory进行开展 static public ServerCnxnFactory createFactory() throws IOException { String se...原创 2019-02-11 11:09:56 · 1533 阅读 · 0 评论 -
zk的客户端发送请求
客户端的发送数据核心代码如下org.apache.zookeeper.ClientCnxn.SendThread.run()while (state.isAlive()) { try { if (!clientCnxnSocket.isConnected()) { ......原创 2019-02-12 14:36:44 · 588 阅读 · 0 评论 -
zk-leader选举
文章目录选举环境QuorumCnxManagerFastLeaderElection消息体的定义消息组装两个线程选举流程主要逻辑梳理选举环境QuorumCnxManagerQuorumCnxManager QuorumCnxManager.Listener QuorumCnxManager.SendWorker final ConcurrentHashMap<...原创 2019-03-19 15:30:50 · 519 阅读 · 0 评论 -
zk-leader选举 流程描述
zk的选举流程涉及很多个线程的并发控制 明确每个线程的职责后 进行流程的具体分析首先准备好环境 https://blog.csdn.net/zhaoyu_nb/article/details/88663599正式开始 其实是从makeLEStrategy().lookForLeader()方法的调用开始的 这里根据配置文件的electorArg来指定具体的选举算法,一般默认使用3 其他的都弃...原创 2019-03-19 16:52:50 · 558 阅读 · 0 评论