从paxos到zookeeper读书笔记(第四章)
来源:互联网 发布:阿里云 内网穿透 编辑:程序博客网 时间:2024/06/07 00:54
netty集群简单的集群方案:zk用来实现服务发现的功能,通过高性能的netty网络框架作为服务器,注册到zk中,client请求到zk中选取可用的netty服务器,选取策略有:轮询、哈希、IP分组、加权分组(均衡负载和服务发现的功能),netty服务器关闭时主动到zk注销。
ZAB算法:
zookeeper官方文档说明,zab算法提供崩溃可恢复的原子消息广播算法,paxos是一种通用的分布式一致性算法。zab的目标是构建一个分布式数据主备系统,针对数据主备系统。paxos的目的是构建一个分布式一致性的状态系统,在各个node节点上的各种状态的一致性。
zap的原理:
1 , zk选取一个主服务器处理客户端的请求,主服务器使用zab协议原子广播协议,通过proposal通知其他服务器端数据状态的改变。
2 , 在分布式应用中,事务A可能依赖于事务B、事务C,所以zk需要保证在处理变更A时,B和C变更已经被执行了。
3 , 考虑到任何主进程都有可能崩溃或者宕机,所以需要考虑主进程在上述情况下,分布式系统仍然能够正常工作。
zab协议的处理流程:
zk定义了leader、follower、observer服务器,leader负责协调处理所有client事务,leader将客户端事务转变为proposal事务,leader将这个proposal转发给其他follower,leader等待其他follower正确反馈,之后leader会向所有follower下发commit消息,提交proposal,处理proposal事务。
zab协议具体内容:
zab协议主要包括两种基本的模式:崩溃恢复、原子广播协议、数据同步。
原子广播:leader服务器向所有follower服务器原子广播。
崩溃恢复:当一个leader与过半的follower失去联系时,zookeeper集群即认为leader处于崩溃状态,follower会elect一个新的leader。
数据同步:当选举出行的leader服务器时,需要保证日志中的所有proposal是否已经半数通过了,即所有的proposal事务是否已经表决了。
zab算法描述:
zab算法主要分为原子广播和崩溃恢复,细分为三个阶段,分别为discovery、sync、broadcast。
discovery主要是leader选举的过程、准leader、follower。
sync:
广播的过程:接收客户端的请求,进行消息广播流程。
- 从paxos到zookeeper读书笔记(第四章)
- 从paxos到zookeeper读书笔记(第四章)
- 从paxos到zookeeper读书笔记(第六章)
- 从paxos到zookeeper读书笔记
- Paxos到zookeeper读书笔记(第一章、第二章)
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper安装
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper使用
- 《从Paxos到ZooKeeper》读书笔记--两阶段提交 2PC
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-paxos算法
- 从Paxos到ZooKeeper-初识ZooKeeper
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper全局唯一id生成
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper分布式锁
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-ZAB协议
- 从Paxos到ZooKeeper-分布式架构
- 从Paxos到ZooKeeper-一致性协议之Paxos算法
- 从Paxos到ZooKeeper-ZooKeeper安装及简单使用
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-两阶段提交与三阶段提交
- 从PAXOS到Zookeeper分布式一致性原理与实践
- HashMap底层详解-003-resize、并发下的安全问题
- ncaught Error: [$injector:cdep] angular 循环依赖
- 迷茫的程序员
- 数组中出现次数超过一半的数字
- 网易2017春招编程题:赶去公司 [python]
- 从paxos到zookeeper读书笔记(第四章)
- 代码生成工具 rapid-framework
- 对字典对象组成的List集合进行Lambda表达式的GroupBy
- mybatis java.sql.SQLException: 无效的列类型
- 剖析InnoDB与MyISAM的区别-mysql
- Java-001-认识Java
- 数据库和数据仓库的区别?
- Preference,PreferenceCategory,PreferenceList,PreferenceCheckBox等控件的简单讲解
- SM9必要的一些数学基础知识(二)