第一章 Zookeeper源码解析(zookeeper解决什么问题)
总结下阅读源码的技巧
1.这个框架,解决什么问题
2.尝试去了解这个框架解决问题原理,并且理解
3.框架的启动过程
4.从启动过分分析,框架运行的原理
5.结合 1.分析框架细节怎么解决这些问题
入手zookeeper框架
zookeeper解决了什么问题
1.zookeeper分注册中心,服务端,消费端(都需要引入zookeeper包) 2.服务注册怎么实现,服务发现怎么实现,服务关闭后,消费端,又做了什么? 3.怎么实现集群,当master挂掉后,怎么切换slave,并且master和slave怎么保证数据一致, 切换过来后,完美替换master工作
尝试去了解这个框架解决问题原理,并且理解
尝试去了解paxoy算法
- 分析zookeeper启动过程,并分析了解zookeeper 配置类(基本所有的框架都有启动Configuration类)
- 逐步分析启动过程,并猜测,一些方法作用
- 和1 进行比对,分析zookeeper整个工作原理
zookeeper解决什么问题
- zookeeper分注册中心,服务端,消费端(都需要引入zookeeper包)
- 服务注册怎么实现,服务发现怎么实现,服务关闭后,消费端,又做了什么?
- 怎么实现集群,当master挂掉后,怎么切换slave,并且master和slave怎么保证数据一致,
切换过来后,完美替换master工作
Paxoy算法
抱着paxoy解决什么问题,好多博客,根本没讲明,上面就讲原理,根本看不懂
假设这个场景: userServer.save(user); accountServer.update(user); accountServer.findAccount(user); 这些都是分布式服务,可能网络延迟导致他们顺序有变动,如果顺序发生变动, 对于业务逻辑时候毁灭型打击,paxoy一致性是保证这个过程一致,其实序列也 可以做到一样的功能,但是效率太低
这里就不细讲借鉴别人,讲的比较好的paxoy算法
源码阅读环境搭建
- 从githui拉下zookeeper源码后发现不能运行,百度下发现zookeeper不是java项目,需要ant编译,然后百度一方
2.编译阅读环境
参考:地址