Zookeeper3.7源码剖析能力目标掌握Zookeeper中Session的管理机制能基于Client进行Debug测试Session创建/刷新操作能搭建Zookeeper集群源码配置掌握集群环境下Leader选举启动过程能说出Zookeeper选举过程中的概念能说出Zookeeper选举投票规则能画出Zookeeper集群数据同步流程1Session源码分析客户端创建Socket连接后,会尝试连接,如果连接成功成功会调用到primeConnection方法用来发送ConnectRequest连接请求,这里便是设置session会话,关于客户端创建会话我们就不在这里做讲解了,我们直接讲解服
前段时间有个粉丝与我讨论了一个问题: 小钗,我半年前从技术经理升职到了技术总监,但这段时间的工作很恼火:一大半时间要去开各种产品会,还有一些时间要去处理团队扯皮,这导致我写代码的时间越来越少,半年下来感觉技术毫无成长,接下来该怎么办呢? 该同学的问题十分常见,而这里真正的问题是:程序员转型管理后,如何平衡技术及管理的精力投入。 然后看最后一句“技术毫无成长,接下来该怎么办”,这里是第二个问题:为什么技术Leader不写代码会感到焦虑? 这里围绕这两个问题开始展开。 技术大神的路线 “学而优则仕”这句话在技术界也行得通,技术好的人会被尊称为大神或者大佬,他会受到技术人员天然的尊敬,这种大神光环所
前段时间有个粉丝与我讨论了一个问题: 小钗,我半年前从技术经理升职到了技术总监,但这段时间的工作很恼火:一大半时间要去开各种产品会,还有一些时间要去处理团队扯皮,这导致我写代码的时间越来越少,半年下来感觉技术毫无成长,接下来该怎么办呢? 该同学的问题十分常见,而这里真正的问题是:程序员转型管理后,如何平衡技术及管理的精力投入。 然后看最后一句“技术毫无成长,接下来该怎么办”,这里是第二个问题:为什么技术Leader不写代码会感到焦虑? 这里围绕这两个问题开始展开。 技术大神的路线 “学而优则仕”这句话在技术界也行得通,技术好的人会被尊称为大神或者大佬,他会受到技术人员天然的尊敬,这种大神光环所
CF1149EElectionPromises这个题目最难下手的地方在于:可以对相邻的城市进行任意修改,这导致难以确定后继状态。但是还是可以使用\(\operatorname{SG}\)函数!下面设\(f_u=\operatorname{mex}\{f_v\}\),这个可以直接拓扑排序求。考虑这样一个状态:除点\(u\)外所有点的当前\(h\)均为\(0\),此时\(\operatorname{SG}(x)=\omega_{f_u}\cdoth_u\),其中\(\omega_k\)表示\(k\)阶无穷大。先手必败当且仅当\[S_k(x)=\bigoplus_{f_u=k}{h_u}=0,\fo
CF1149EElectionPromises这个题目最难下手的地方在于:可以对相邻的城市进行任意修改,这导致难以确定后继状态。但是还是可以使用\(\operatorname{SG}\)函数!下面设\(f_u=\operatorname{mex}\{f_v\}\),这个可以直接拓扑排序求。考虑这样一个状态:除点\(u\)外所有点的当前\(h\)均为\(0\),此时\(\operatorname{SG}(x)=\omega_{f_u}\cdoth_u\),其中\(\omega_k\)表示\(k\)阶无穷大。先手必败当且仅当\[S_k(x)=\bigoplus_{f_u=k}{h_u}=0,\fo
zookeeper的leader选举存在两个阶段,一个是服务器启动时leader选举,另一个是运行过程中leader服务器宕机。在分析选举原理前,先介绍几个重要的参数。服务器ID(myid):编号越大在选举算法中权重越大事务ID(zxid):值越大说明数据越新,权重越大逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加选举状态:LOOKING:竞选状态FOLLOWING:随从状态,同步leader状态,参与投票OBSERVING:观察状态,同步leader状态,不参与投票LEADING:领导者状态1、服务器启动时的leader选举每个节点
zookeeper的leader选举存在两个阶段,一个是服务器启动时leader选举,另一个是运行过程中leader服务器宕机。在分析选举原理前,先介绍几个重要的参数。服务器ID(myid):编号越大在选举算法中权重越大事务ID(zxid):值越大说明数据越新,权重越大逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加选举状态:LOOKING:竞选状态FOLLOWING:随从状态,同步leader状态,参与投票OBSERVING:观察状态,同步leader状态,不参与投票LEADING:领导者状态1、服务器启动时的leader选举每个节点