Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34269
  • 博文数量: 7
  • 博客积分: 168
  • 博客等级: 入伍新兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-07 15:34
文章分类

全部博文(7)

文章存档

2012年(1)

2011年(6)

我的朋友

分类: Java

2011-12-29 20:16:53

暂时只能起到记录的作用,估计想让别人理解还有点难度。推荐博文
1、系统启动,如果命令行参数为1个且配置的Server数大于1,启动集群模式,否则启动单机模式;
2、集群模式下,启动QuorumPeer线程,然后通过join等待工作线程结束。
2.1、装载数据:从快照文件恢复快照内存树,同时处理快照之后还未处理的事务日志;
2.2、启动ServerCnxnFactory来启动一个Socket监听接收客户端请求;
2.3、启动选举,生成自己作为Leader的选票,同时生成发送、接收两个队列,并启动两个线程分别处理两个队列的数据,接收线程在超过1/2选票承认某个Leader后结束选举;
2.4、构建MBeanRegistry,构建当前节点的MBean结构;
2.5、判断节点类型,
Looking,则推动选举,发送选票,并等待其他节点选票并完成选举;
  Observing,则启动与Leadinger通信,并同步Leader数据到本地;
Following/Leading,如果是本轮选票,放入recvset并判断是否可确定Leader,结束选举
否则放入outofelections并判断是否可以确定Leader,结束选举
阅读(2040) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

3783335812011-12-30 23:02:22

额(⊙o⊙)…进来看看