Zookeeper作为注册中心缺陷
- 1、CAP与BASE
- zk 满足CAP理论中的CP,牺牲A;作为注册中心是可用性A重要还是C强一致性重要
- 若满足了C强一致性则牺牲服务联通性,注册中心本身不应该影响服务间的连通性
- 若满足了A可用性,牺牲了强一致性,带的问题只是每个服务消费不均衡,满足最终一致性,也是在可控范围之内
- zk 满足CAP理论中的CP,牺牲A;作为注册中心是可用性A重要还是C强一致性重要
- 2、性能问题
- 当服务集群节点规模过大在几十万或者几百万级别时,若服务进行发布或者扩容操作时会很容易打满网卡,事件广播流量=(服务+消费)2服务集群节点数*1KB
- 单点写问题,不能水平扩展解决写的性能问题
- 写请求串行化,Leader写
- 3、持久化
- 是否关心过去持久化的数据,关注的是实时的节点、接口数据
- 健康检查的节点列表数据可以不持久化,最多带来负载不均衡的问题
- 接口信息相关数据注册之后不会变,变化的是节点列表数据
- 应该考虑分开存储
- 4、容灾
- 应用弱依赖注册中心
- 注册中心完全不可用的情况下,目前是无法满足的
- 客户端提供缓存
- 5、健康检查
- 做的是TCP的存活性检测,而非服务本身的健康检查