分布式
踩坑
负载均衡
水平伸缩
集群
异步
消峰
分库分表
分片(一致性hash)
锁
实现理论
CAP理论
BASE模型
两/三/四阶段提交
柔性事务(TCC)
JTA失败
JDK中JTA的失败,网络延迟导致性能低下
CAP
Consistency
A read is guaranteed to return the most recent write for a given client.
对某个指定的客户端来说,读操作保证能够返回最新的写操作结果。
Availability
A non-failing node will return a reasonable response within a reasonable amount of time (no error or timeout).
非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。
Partition-Tolerance
System continues to work despite message loss or partial failure.
当出现网络分区后,系统能够继续“履行职责”。
BASE
Basically Available:基本可用,允许分区失败
Soft state:软状态,接受一段时间状态不同步
Eventually consistent:最终一致,保证最终数据状态的一致
规范
XA
协议
Paxos
核心原则:通过议会进行决议,少数服从多数
角色:议案提出者(多位)、议案的决策者(多位)、议案的学习者(可获取决策后的唯一议案的值)
问题:如果议案提出者同时提出议案(并发),可能会出现碰撞失败,双方继续增加议案编号重新提议案。
办法:整个集群中只设定一个议案提出者(Leader),这会引发单点问题
问题:只有一个Leader会出现单点问题
办法:加入选择机制,当Leader挂了,则选择另外一个Leader"
问题