常见注册中心:Zookeeper、eureka、nacos
应该怎么选择
Nacos | Eureka | Consul | Zookeeper | |
---|---|---|---|---|
一致性协议 | CP+AP | AP | CP | CP |
健康检查 | TCP/HTTP/MYSQL/Client Beat | 心跳 | TCP/HTTP/gRPC/Cmd | Keep Alive |
雪崩保护 | 有 | 有 | 无 | 无 |
访问协议 | HTTP/DNS | HTTP | HTTP/DNS | TCP |
SpringCloud集成 | 支持 | 支持 | 支持 | 支持 |
-
Zookeeper:CP设计,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足
-
Eureka:AP原则,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化
-
结论:
-
分布式系统中P,肯定要满足,所以只能在C和A中二选一
-
没有最好的选择,最好的选择是根据业务场景来进行架构设计
-
如果要求一致性,则选择zookeeper/Nacos,如金融行业 CP
-
如果要求可用性,则Eureka/Nacos,如电商系统 AP
-
CP: 适合支付、交易类,要求数据强一致性,宁可业务不可用,也不能出现脏数据
-
AP: 互联网业务,比如信息流架构,不要求数据强一致,更想要服务可用
-