开发者学堂课程【微服务实战-服务注册中心 - Nacos :Nacos 作为注册中心的优势】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/619/detail/9428
Nacos 作为注册中心的优势
内容介绍:
一、Nacos 、Zookeeper、Eureka 的主要区别
二、Nacos 的优势
一、Nacos 、Zookeeper、Eureka 的主要区别
|
Nacos |
Zookeeper |
Eureka |
一致性协议 |
CP+AP |
CP |
AP |
访问协议 |
HTTP/DNS |
TCP |
HTTP |
健康检查 |
TCP/HTTP/MYSQL/上报心跳/用户扩展 |
Keep Alive |
上报心跳 |
访问策略 |
服务端访问策略+客户端访问策略 |
客户端访问策略 |
客户端访问策略 |
多地域数据中心 |
支持 |
不支持 |
不支持 |
读取TPS |
万级 |
万级 |
千级 |
服务容量 |
百万级 |
10万级 |
万级 |
二、Nacos 的优势
1.一致性协议
nacos 与以往注册协议的主要区别是 nacos 同时支持 cp 和 ap 一致性协议。
同时支持 AP、 CP 两种协议的意思是用户可以通过配置的方式或者 API 参数的方式选择写入的数据,是遵循 cp 的一致性还是 ap 的一致性,在什么情况下应该选择 cp 的一致性?
在什么情况下应该选择 ap 的一致性?当写入数据的成功是由单条请求来保证时,使用 cp 的一致性。
因为 cp 的一致性,是优先保证数据的一致性和牺牲了服务整理的可容性。如果单次写请求的成败不是很重要,而是可以通过后续的数据补偿机制,将数据上报。
这种情况适合使用 ap 的一致性,通过 ap 的一致性来保证数据的最终一致,同时能够提高服务的可用性。
Zookeeper 是 CP 一致性协议。Eureka 使用的是自研的先行通知。这种先行通知是ap 的一次性协议,优先保证的是服务的可用性。
2.访问策略
nacos 支持两种模式的访问策略,服务端的访问策略以及客户端访问策略。
客户端的访问策略其实是将服务的所有实例都下发到客户端,然后在客户端或者借助第三方的组件进行服务实例的筛选。Zookeeper 以及 Eureka 都是使用的这种访问策略。
服务端的防策略是通过在 nacos 控制台或者使用 API,对服务配置特定的访问策略,再通过接口进行服务实例查询时,就会在 nacos 的服务端进行服务实例的过滤。
服务端的访问策略是一种更加灵活的访问策略,因为它不需要客户端的修改,以及可以在运行时动态的调整。
3.部署架构
nacos 目前支持单节点部署,集群部署,同城双击房,多机房部署以及跨地域多数据中心的部署。zookeeper 以及 eureka 目前说支持的部署模式都是比较有限的。
4.性能
目前 nacos 和 zookeeper 支持读写 tps 都在万级别。Eureka 的读写 tps 则在千级别。
5.服务容量
目前 nacos 通过内部的一系列优化能够达到百万级的服务容量。Zookeerper 可以达到10万级的服务容量, Eureka 则是万级别的服务容量