本地事务acid到分布式事务设计的cap/base理论
ACID :atomicity consistency isolation duration
CAP : consistency avalible partion tolerance
BASE : base avalible soft state eventally consistency
2PC/3PC/Paxos/Zab
两阶段提交法,pre-commit执行业务数据处理,do-commit 提交事务操作
优点:简单操作
缺点: 当执行do-commit操作时所有涉及的事务都必须阻塞等待事务处理结果,且当TransactionManager宕机或单个本地事务宕机时整体事务处于一直等待状态
与2PC相比,多了一个can-commit的预处理过程,同时对本地事务有超时时间限制,当事务执行失败/某个本地事务再can-commit/pre-commit超时时,整体事务回滚,且当TranstactionManager向各事务发送commit指令时宕机,本地事务再do-commit阶段未收到commit指令,则会在超时时默认执行提交事务操作。
优点:增加can-commit过程,设置事务响应超时时间减少分布式事务阻塞范围
缺点: 当TransactionManager在do-commit阶段宕机时,各事务会在默认超时后执行commit操作,可能会造成事务不一致性
解决了单点问题,同时解决了无限等待问题以及脑裂问题

paxos与zab目标不同,paxos是做一个分布式一致性状态机,而zab是实现一个高可用的分布式数据主备系统


1、树形结构存储
2、节点特性
唯一性
持久有序节点、持久无须节点、临时有序节点、临时无须节点

ZkClient
Curator:https://curator.apache.org/getting-started.html
1、数据发布/订阅(配置中心)
2、负载均衡(gameServer)
用户注册时即绑定对应服务名称,再次登录基于服务名称获取对应ip进行通信
3、命名服务(注册中心)
4、集群管理
5、master选举
6、分布式锁
基于ZNode临时有序节点进行锁处理
7、分布式队列
Hadoop
HBase
Kafka
Dubbo
Canal
1、数据模型
2、节点特性
临时节点生命周期 客户端请求的顺序执行 Watcher通知机制
3、version-保证原子性
4、watcher-变更通知机制
5、Acl保证数据安全
Jute、Thrift、Probuf
通信协议

1、内存数据
2、事务日志
3、sanpshot
zoo.cfg
ticktime 最小时间单位,其他时间都为ticktime时间倍数
initLimit follower同步master数据时间 默认ticketime10倍时间
syncLimit client同服务器保持心跳时间 5
clientPort
forceSync 是否事务信息添加则日志刷入磁盘 默认 是
log文件 snapshot
运维
集群模式
容灾模式 三机房部署 双机房部署
扩容与缩容
gitee地址:https://gitee.com/apache/zookeeper.git
1、https://blog.csdn.net/qq_34387470/article/details/116835810