注册中心选型

146 阅读2分钟

注册中心选型注册中心选型类似于其他中间件选型,要考虑的因素非常多。比如说中间件成熟度、社区活跃度、性能等因素。相比之下,注册中心更加关注 CAP 中选 CP 还是选 AP 的问题。

  • C:Consistency,数据一致性
  • A:Availability,服务可用性
  • P:Partition-tolerance,分区容错性CAP

理论告诉我们,一个分布式系统不可能同时满足数据一致性、服务可用性和分区容错性这三个基本需求,最多只能同时满足其中的两个。——来自《深入浅出分布式原理》

简单来说,选择 CP 就是选了一致性和分区容错性,而选择 AP 就相当于选了可用性和分区容错性。看上去 P 分区容错性是肯定要选的,那么剩下的就是选 C(一致性) 还是选 A(可用性) 了。那么你要先理解在注册中心选型里面,一致性和可用性究竟哪个更加重要?标准答案是可用性,也就意味着 CP 和 AP 你应该选 AP。前面我们讨论了客户端容错,那么显然在选择 AP 的情况下,客户端就可能拿到错误的可用节点列表。如果客户端将请求发到错误的可用节点上,就会出现错误,此时客户端自然可以执行容错,换一个可用节点重试。所以我们要抓住关键词客户端容错进行回答。在注册中心选型上,重要的是 CAP 原理中应该选择 AP,比如说 Eureka,又或者 Nacos 启用 AP 模式。万一你公司并没有使用 AP 模型的注册中心,比如说用了 CP 模型的 ZooKeeper,那么你就可以进一步解释,关键词是体量小。我司之所以用 ZooKeeper,主要是因为我司体量小,集群规模也不大,ZooKeeper 虽然不是 AP 的,但是在这种体量下也够用了。不过我也尝试在公司内部推动看能否换一个中间件,比如说用 Nacos 的 AP 模式。

此文章为11月Day09学习笔记,内容来源于极客时间《后端工程师的高阶面经》,强烈推荐该课程