做网站 淘宝,物联网方案设计与实现,佛山网警,汕尾手机网站设计1. 分布式系统CAP原理 CAP原理#xff1a;指在一个分布式系统中#xff0c;Consistency#xff08;一致性#xff09;、Availability#xff08;可用性#xff09;、Partitontolerance#xff08;分区容忍性#xff09;#xff0c;三者不可得兼。 一致性#xff08;C…1. 分布式系统CAP原理 CAP原理指在一个分布式系统中Consistency一致性、Availability可用性、Partitontolerance分区容忍性三者不可得兼。 一致性C在分布式系统中的所有数据备份在同一时刻是否同样的值。简单说就是所有节点在同一时刻的数据完全一致这就意味着节点越多数据同步的时候消耗时间越多。 可用性A负载过大后集群整体是否还能响应用户正常的读写请求。简单说就是项目系统对于用户请求的响应时间一定在能接受的范围内需要照顾用户体验。 分区容忍性P分区容忍性就是高可用性一个节点崩了不会影响其他节点。简单说就是服务器节点崩了几个没事只要有正常的服务器就可以意思是节点越多就越好了。 2. 一致性 ◦ 强一致性数据库一致性牺牲了性能 ◦ 弱一致性数据库和缓存延迟双删、重试 ◦ 单调读一致性缓存一致性ID或者IP哈希 ◦ 最终一致性边缘业务消息队列 业内常用解决方案 XA方案 2PC协议两阶段提交协议P是指准备阶段C是指提交阶段 • 准备阶段询问是否可以开始写Undo、Redo日志收到响应 • 提交阶段执行Redo日志进行Commit执行Undo日志进行Rollback 3PC协议将提交阶段分为CanCommit、PreCommit、DoCommit三个阶段 CanCommit发送canCommit请求并开始等待 PreCommit收到全部Yes写Undo、Redo日志。超时或者No则中断 DoCommit执行Redo日志进行Commit执行Undo日志进行Rollback 区别是第二步参与者自身增加了超时如果失败可以及时释放资源 3.Paxos算法
4.ZAB算法 Raft 是一种为了管理复制日志的一致性算法 Raft使用心跳机制来触发选举。当server启动时初始状态都是follower。每一个server都有一个定时器超时时间为election timeout一般为150-300ms如果某server没有超时的情况下收到来自领导者或者候选者的任何消息定时器重启如果超时它就开始一次选举。 Leader异常异常期间Follower会超时选举完成后Leader比较彼此步长 Follower异常恢复后直接同步至Leader当前状态 多个Candidate选举时失败失败后超时继续选举 5.分布式事务 XA方案 两阶段提交 | 三阶段提交 • 准备阶段的资源锁定存在性能问题严重时会造成死锁问题 • 提交事务请求后出现网络异常部分数据收到并执行会造成一致性问 TCC方案 Try Confirm Cancel / 短事务 • Try 阶段这个阶段说的是对各个服务的资源做检测以及对资源进行锁定或者预留 • Confirm 阶段这个阶段说的是在各个服务中执行实际的操作 • Cancel 阶段如果任何一个服务的业务方法执行出错那么就需要进行补偿/回滚 MQ最终一致性 比如阿里的 RocketMQ 就支持消息事务核心双端确认重试幂等 A(订单) 系统先发送一个 prepared 消息到 mqprepared 消息发送失败则取消操作不执行了发送成功后那么执行本地事务执行成功和和失败发送确认和回滚消息到mq如果发送了确认消息那么此时 B(仓储) 系统会接收到确认消息然后执行本地的事务mq 会自动定时轮询所有 prepared 消息回调的接口确认事务执行状态B 的事务失败后自动不断重试直到成功达到一定次数后发送报警由人工来手工回滚和补偿 最大努力通知方案订单 - 积分 系统 A 本地事务执行完之后发送个消息到 MQ这里会有个专门消费 MQ 的最大努力通知服务接着调用系统 B 的接口要是系统 B 执行失败了就定时尝试重新调用系统 B反复 N 次最后还是不行就放弃