博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SOFARaft是强一致性还是最终一致性?
阅读量:6548 次
发布时间:2019-06-24

本文共 488 字,大约阅读时间需要 1 分钟。

CAP理论: C:这里的C指的是强一致性,同一时刻不同的客户端获取到的数据版本都是相同的 A: 可用性,指的是系统会响应客户端的每一个请求 P:分区容忍性,指的是当系统里面某个节点与其他节点通讯切断(导致节点间数据不一致)系统仍然可以正常工作

互联网应用P是必须保证的,但是A和P为什么不能同时满足呢?

因为如果需要保证强一致性,那么当系统节点出现数据不一致的时候就要进行数据同步,那么这期间系统是无法保证强一致性的,所以如果数据同步期间有请求打到Node1节点,系统将会告知客户端系统不可用请稍后重试,当然系统也可以把Node1节点上的旧版本的数据返回给客户端(最终一致性,Base理论)

举个AP的例子: 用户在Node1节点设置了自己的新的头像,然后在Node2节点查看自己的头像,有可能看到的还是老头像。

举个CP的例子: 用户在Node1节点充值了100元,然后在Node2节点查看余额,如果这个时间节点之间还没有同步,那么将告知服务重试.

CP:redis、zookeeper(最终一致性还是强一致性?)

AP:euraka、

关于Raft协议,可以看一下这个文章

转载地址:http://aegdo.baihongyu.com/

你可能感兴趣的文章
nodjs html 转 pdf
查看>>
Python字典
查看>>
Android存储方式之SQLite的使用
查看>>
洛谷P1287 盒子与球 数学
查看>>
Bootstrap vs Foundation如何选择靠谱前端框架
查看>>
与、或、异或、取反、左移和右移
查看>>
vue常用的指令
查看>>
matlab练习程序(随机游走图像)
查看>>
Linux命令行下运行java.class文件
查看>>
input文本框实现宽度自适应代码实例
查看>>
行为型设计模式之命令模式(Command)
查看>>
减少死锁的几个常用方法
查看>>
HDFS 核心原理
查看>>
正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
查看>>
安装 MariaDB
查看>>
java 为啥变量名前要加个m?
查看>>
探索Android中的Parcel机制(上)
查看>>
C#开发微信门户及应用(5)--用户分组信息管理
查看>>
怎样实现前端裁剪上传图片功能
查看>>
ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
查看>>