zookeeper源码学习-QuorumStats
- 表示节点的状态 状态 - UNKNOWNSTATE : 未知 - LOOKINGSTATE:查找 leader - LEADINGSTATE:leader状态 - FOLLOWINGSTATE:跟随状态 - OBSERVINGSTATE:观察状态
标签 · 第 2/2 页
共 20 篇 · 全部标签
- 表示节点的状态 状态 - UNKNOWNSTATE : 未知 - LOOKINGSTATE:查找 leader - LEADINGSTATE:leader状态 - FOLLOWINGSTATE:跟随状态 - OBSERVINGSTATE:观察状态
- 分布式节点的相关代码 基础变量
整个项目的启动入口 关系图 initializeAndRun main的主要内容,用于初始化配置,启动清除线程,run server runFromConfig 如果是分布式部署的话,会通过该函数进行节点的启动。如果是单节点的话,是通过ZooKeeperServerMain.main(args)的方式启动 所有代码
该方法是ZKServer单机启动时候的入口函数
本文主要是记录自己在学习zookeeper源码时候的相关内容,主要研究了从zk启动,到完成leader选举的过程。重点是学习leader选举的过程,想配置文件读取这种只是做了大概的了解以及记录 源码的版本是 3.6.1 Quorum是一种分布式协议,在有N个节点的时候,如果某个提议被超过M个节点认可,则任务该提议通过
使用方法 - 创建RateLimiter - 使用的时候,去acquire
--- ConcurrentHashmap ConcurrentHashmap整体跟hashmap差不多,主要的区别是线程安全,并且不支持key和value为null ConcurrentHashmap在插入元素的时候会使用synchronized,保证了写的线程安全。在扩容的时候,将表划分成一个个独立的区域,然后每个…
Hashmap 1.hashmap的家族 能够看出,hashmap是map的一个实现类
tableSizeFor 该算法相当奇妙,目的是输入一个数字c,然后返回离它最近的且值大于它的2的n次幂,例如输入7,返回8,输入123,返回128。 首先定义一个变量n为c-1,至于为什么为c-1,之后会说到。 我们输入c=13来带入计算一下 这里我们可以回头看上面的第一步,n = c-1,如果不执行c-1的话,我们…
range 与 xrange的区别 首先我们看一个测试 import time def rangeTest(): startTime = time.time() for i in range(1,100000000): pass stopTime = time.time() print 'range' print +s…