Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
武汉红喜
whatsmars
提交
5627feb5
W
whatsmars
项目概览
武汉红喜
/
whatsmars
通知
3
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
whatsmars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5627feb5
编写于
11月 17, 2018
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
为什么说zk不适合做服务注册中心
上级
dfcc2d57
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
0 deletion
+10
-0
whatsmars-dubbo/README.md
whatsmars-dubbo/README.md
+10
-0
未找到文件。
whatsmars-dubbo/README.md
浏览文件 @
5627feb5
...
...
@@ -3,6 +3,16 @@
> 好的微服务架构师一定是业务架构师,基于业务的建瓴,微服务设计三部曲,遵循自下而上的设计原则,即原子服务、服务组合和业务编排,避免系统之间出现混乱调用。
### 为什么zookeeper不适合做服务注册中心
有个思考,从CAP角度考虑,服务注册中心是CP系统还是AP系统呢?
首先,服务注册中心是为了服务间调用服务的,那么绝对不允许因为服务注册中心出现了问题而导致服务间的调用出问题。
再者,假如有node1,node2,node3集群节点,保存着可用服务列表ip1,ip2,ip3,试想如果此时不一致,比如node1只保存了ip1,ip2,
此时调用方读取node1节点,那么会造成什么影响?调用node1的服务,顶多就是负载均衡时不会有流量打到ip3,然后等node1同步回ip3后,
又一致了,这对服务其实没什么太大影响。所以,服务注册中心应该是个AP系统。而zookeeper是个CP系统,强一致性。
-
场景1,当master挂了,此时zookeeper集群需要重新选举,而此时调用方需要来读取服务列表,是不可用的,影响到了服务的可用性。
当然你可以说本地有缓存可用列表,然而下面这种方式就更无法处理了。
-
场景2,分区可用。试想,有3个机房,如果其中机房3和机房1,2之间的网络断了,那么机房3的注册中心就不能注册新的机器了么,这显然也不合理。
### Test
-
startup zookeeper
-
mvn clean package
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录