前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试-Zookeeper作为注册中心合适吗

面试-Zookeeper作为注册中心合适吗

作者头像
小土豆Yuki
发布2022-12-01 21:11:11
3190
发布2022-12-01 21:11:11
举报
文章被收录于专栏:洁癖是一只狗洁癖是一只狗

Zookeeper作为注册中心合适吗

这个是某公司的面试题,之前没有考虑到这个问题,只知道zk如何做注册中心,很少考虑合不合适问题,因为大家都这么用

在查阅了相关资料,发现zk并不合适做注册中心,今天我就说说为什么

  1. CAP模型中zk他支持的是CP
  2. ZK性能上的问题

上面两点就是他不适合做注册中心的主要问题,我们一个个分析

CAP模型中zk他支持的是CP

首先我们要明白注册中心的关注点是什么呢,是可用性还是一致性呢,当然是可用性了而不是一致性

假设他有不一致性问题会引起什么问题呢,如下图

serviceA两次拉取到了不同的serviceB列表

代码语言:javascript
复制
serviceB={ip2...ip10}
serviceB={ip1...ip9}

他会因此上面问题呢,粗略来看就是流量的不均衡,如IP1和IP10流量是单份的,其他IP都是双份流量,但是对于我们的服务其实不大,所以说注册中心模型使用AP可能更好

我们再看看注册中心如果是不可用状态会引起什么问题

正如上图,我们部署了三机房5节点的注册中心,当发生网络分区的时候,我们的消费者只能消费本机房的serverB,而不能消费其他机房的serviceB,但是当我们的机房3中的zk不可用的时候,发现消费者不能消费其他机房的serverB,这个是可以理解的,但是他也不能消费同机房的serverB,这就有点过分了

最终我们可以看到,注册中心模型偏向的是AP.

性能问题

  1. 在大规模的服务中,zk就是性能瓶颈,因为zk集群只能是leader提供读写操作,而leader有是单点,没有办法水平扩展
  2. 当还有zk在每一次写操作都会写事务日志,这也会引起性能问题

基于上面总结,我们可以发现zk其实并不适合做注册中心,但是他的特长是分布式协调服务,如kafka,hbase,hadoop使用zk,就发挥了zk的特长

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洁癖是一只狗 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档