leader选举的源码分析-quorumPeer.createElectionAlgorithm
根据对应的标识创建选举算法
protected Election createElectionAlgorithm(int electionAlgorithm){ Election le=null; //TODO: use a factory rather than a switch switch (electionAlgorithm) { case 0: le = new LeaderElection(this); break; case 1: le = new AuthFastLeaderElection(this); break; case 2: le = new AuthFastLeaderElection(this, true); break; case 3: qcm = createCnxnManager(); QuorumCnxManager.Listener listener = qcm.listener; if(listener != null){ listener.start(); //启动监听器,这个监听具体做什么的暂时不管,后面遇到需要了解的地方再回过头来看 le = new FastLeaderElection(this, qcm);//初始化FastLeaderElection } else { LOG.error("Null listener when initializing cnx manager"); } break; default: assert false; } return le;
}
leader选举的源码分析-quorumPeer.createElectionAlgorithm相关推荐
- leader选举的源码分析-QuorumPeer.start
QuorumPeer.start方法,重写了Thread的start.也就是在线程启动之前,会做以下操作 1. 通过loadDataBase恢复快照数据 2. cnxnFactory.start() ...
- leader选举的源码分析
源码分析,最关键的是要找到一个入口,对于zk的leader选举,并不是由客户端来触发,而是在启动的时候会触发一次选举.因此我们可以直接去看启动脚本zkServer.sh中的运行命令 ZOOMAIN就是 ...
- leader选举的源码分析-startLeaderElection
看到这个方法,有没有两眼放光的感觉?没错,前面铺垫了这么长,终于进入leader选举的方法了 synchronized public void startLeaderElection() { try ...
- leader选举的源码分析-FastLeaderElection
初始化FastLeaderElection,QuorumCnxManager是一个很核心的对象,用来实现领导选举中的网络连接管理功能,这个后面会用到 public FastLeaderElection ...
- leader选举的源码分析-Messenger
在Messenger里面构建了两个线程,一个是WorkerSender,一个是WorkerReceiver. 这两个线程是分别用来发送和接收消息的线程.具体做什么,暂时先不分析. Messenger( ...
- leader选举的源码分析-FastLeaderElection.starter
starter方法里面,设置了一些成员属性,并且构建了两个阻塞队列,分别是sendQueue和recvqueue.并且实例化了一个Messager private void starter(Quoru ...
- leader选举的源码分析-runFromConfig
从名字可以看出来,是基于配置文件来进行启动. 所以整个方法都是对参数进行解析和设置 , 因为这些参数暂时还没用到,所以没必要去看.直接看核心的代码 quorumPeer.start(), 启动一个线程 ...
- Zookeeper之Leader选举源码分析
Zookeeper源码下载地址:https://github.com/apache/zookeeper 1.选举流程 Zookeeeper的Leader选举会分两个过程. 服务启动时的leader选举 ...
- 【Zookeeper】源码分析之Leader选举(一)
一.前言 分析完了Zookeeper中的网络机制后,接着来分析Zookeeper中一个更为核心的模块,Leader选举. 二.总结框架图 对于Leader选举,其总体框架图如下图所示 说明: 选举的父 ...
最新文章
- 计算几何题中的英语生词
- Android Studio Terminal 不是内部或外部命令,也不是可运行程序或批处理文件
- Count the Colors ZOJ - 1610
- 16 代码分割之错误边界与Suspense和命名导出
- 【c语言】棋盘游戏--三子棋
- 洛谷P2312解方程题解
- ZIP压缩输入/输出流
- MongoDB进阶系列(12)——MongoDB 固定集合
- 基于Java+MyEclipse+Socket+GUI的网络通讯录(C#可以参考为WinForm通讯录结构大体类似)
- 推荐计算机科学类的经典书籍
- 组播负载分担、静态组播路由和MBGP技术原理
- 无线路由器的几种破解方法
- CentOS 7安装TeamView
- C++模板编程(18)---模板实例化instantiation
- 计算机毕业设计JAVA便利店系统mybatis+源码+调试部署+系统+数据库+lw
- 新视野大学英语读写2 78单元翻译
- 给女朋友讲解什么是代理模式 【java3y将东西太有意思了】
- Android开发——kotlin语法基础
- 龙芯Fedora21平台制作feodra21-loongson-app docker镜像
- Python-字符版gif图