Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
advanced-java
提交
3a1c9109
A
advanced-java
项目概览
wushizhenking
/
advanced-java
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
advanced-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3a1c9109
编写于
10月 13, 2020
作者:
Y
yanglbme
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:doocs/advanced-java
上级
cc4305ca
ada81381
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
30 addition
and
0 deletion
+30
-0
docs/distributed-system/distributed-system-cap.md
docs/distributed-system/distributed-system-cap.md
+30
-0
未找到文件。
docs/distributed-system/distributed-system-cap.md
浏览文件 @
3a1c9109
...
@@ -21,3 +21,33 @@
...
@@ -21,3 +21,33 @@
-
P 的体现前提是得有分区情况存在
-
P 的体现前提是得有分区情况存在
> 文章来源:[维基百科 CAP 定理](https://zh.wikipedia.org/wiki/CAP%E5%AE%9A%E7%90%86)
> 文章来源:[维基百科 CAP 定理](https://zh.wikipedia.org/wiki/CAP%E5%AE%9A%E7%90%86)
## 几个常用的 CAP 框架对比
| 框架 | 所属 |
| --------- | ---- |
| Eureka | AP |
| Zookeeper | CP |
| Consul | CP |
### Eureka
> Eureka 保证了可用性,实现最终一致性。
Eureka 所有节点都是平等的所有数据都是相同的,且 Eureka 可以相互交叉注册。
Eureka client 使用内置轮询负载均衡器去注册,有一个检测间隔时间,如果在一定时间内没有收到心跳,才会移除该节点注册信息;如果客户端发现当前 Eureka 不可用,会切换到其他的节点,如果所有的 Eureka 都跪了,Eureka client 会使用最后一次数据作为本地缓存;所以以上的每种设计都是他不具备
`一致性`
的特性。
注意:因为 EurekaAP 的特性和请求间隔同步机制,在服务更新时候一般会手动通过 Eureka 的 api 把当前服务状态设置为
`offline`
,并等待 2 个同步间隔后重新启动,这样就能保证服务更新节点对整体系统的影响
### Zookeeper
> 强一致性
Zookeeper 在选举 leader 时会停止服务,只有成功选举 leader 成功后才能提供服务,选举时间较长;内部使用 paxos 选举投票机制,只有获取半数以上的投票才能成为 leader,否则重新投票,所以部署的时候最好集群节点不小于 3 的奇数个(但是谁能保证跪掉后节点也是基数个呢);Zookeeper 健康检查一般是使用 tcp 长链接,在内部网络抖动时或者对应节点阻塞时候都会变成不可用,这里还是比较危险的;
### Consul
和 Zookeeper 一样数据 CP
Consul 注册时候只有过半的节点都写入成功才认为注册成功;leader 挂掉时,重新选举期间整个 Consul 不可用,保证了强一致性但牺牲了可用性
有很多 blog 说 Consul 属于 ap,官方已经确认他为 CP 机制 原文地址:https://www.consul.io/docs/intro/vs/serf
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录