起因
之前使用的都是spring cloud的全家桶,Eureka、spring config、spring gateway等组件。为了减少微服务的数量,我们将spring config和Eureka做成了一个服务,既充当服务注册中心,有充当服务配置中心。可是每一次修改完配置文件之后都需要重新启动Eureka来使修改的配置生效,这大大的降低了开发的效率。
注册中心本质是为了解耦服务提供者和服务消费者的。任何一个微服务都应该存在或者支持多个提供者,而提供者的数量和分布是无法预先确定的,因此就需要有一个组件来管理微服务提供者的注册和发现,这个就是注册中心。
CAP理论
- 一致性(Consistency)
- 可用性(Availability)
- 分隔容忍(Partition tolerance)
CAP理论是分布式架构中重要的理论。
一致性就是所有节点在同一时间具有相同的数据,可用性就是保证每个请求不管成功或者失败都有响应,某一个节点挂掉并不会影响整个系统的接受和发出请求,分割容忍就是系统中任意信息的丢失或失败不会影响系统的继续运作。
主流注册中心对比
Nacos | Eureka | Consul | Zookeeper | |
---|---|---|---|---|
CAP理论 | CP+AP | AP | CP | CP |
健康检查 | TCP/HTTP/MYSQL/Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | Keep Alive |
负载均衡策略 | 权重/metadata/Selector | Ribbon | Fabio | - |
雪崩保护 | 有 | 有 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 支持 | 支持 |