栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式一致性,CAP理论,Ruft算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式一致性,CAP理论,Ruft算法

分布式一致性问题

分布式系统中,每个节点都要将自己收到的请求发送给其他节点,其他节点再执行相同的操作,从而保证数据的一致性.但是由于时钟不同步,网络不可靠,节点崩溃等因素会导致数据的不一致.

例如,A向 C发送a=a*2,B向C发送a=a+1;当a=0时,若A指令先到达,a最终是1,当b指令先到达,a最终是2.

CAP理论

分布式系统有一个著名的CAP理论.

C-----consistency:一致性性,所有节点的数据保持一致

A------avalability:可用性,系统是可用的

P------partitiion tolerance:当由于网络的原因导致系统中各个分区的信息不同,不同的分区仍然可以访问到数据.

一般来讲,分区容错性是必须要保证的,所以必须在一致性和可用性中放弃一个.

SpringCloud中eureka保证的是可用性,每个eureka节点都是平等的

zookeeper,redis保证的是一致性,当集群无法达到数据一致时就停止服务.

Raft算法

Raft算法就是实现的强一致性.在raft算法中会选出一个leader节点,其余节点都是follower节点,leader节点负责执行写命令,然后再发送给follower节点.

Raft算法将一致性问题转为3个子问题:

  1. 领导选举:leader下线或集群启动需要选举一个新的leader(过半机制)
  2. 日志复制:leader将请求记录到日志中,并广播给其他节点
  3. 数据安全:如果日志已经被集群提交,那么该日志就不能被覆盖或修改.
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号