Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65697
  • 博文数量: 21
  • 博客积分: 78
  • 博客等级: 民兵
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-04 02:32
文章分类
文章存档

2012年(16)

2011年(5)

我的朋友

分类:

2011-12-30 23:01:41

暂时只能起到记录的作用,估计想让别人理解还有点难度。推荐博文
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,结束选举
阅读(1005) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~