注册中心Consul
什么是Consul?
Consul和上篇中的Eureka有不同之处,Consul作为注册中心满足的是CAP理论中的CP(一致性和分区容错性),至于A(可用性)则未满足;Eureka2.X在8012年的时候遇到困难停止开发了,Spring Cloud 支持很多服务发现的软件,Eureka 只是其中之一。
Spring Cloud Consul提供的功能:
- 服务发现:可以向Consul代理注册实例,并且客户端可以使用Spring托管的Bean发现实例
- 通过Spring Cloud Netflix支持Ribbon,客户端负载均衡器
- 支持Spring Cloud LoadBalancer-Spring Cloud项目提供的客户端负载均衡器
- 通过Spring Cloud Netflix支持Zuul,动态路由器和过滤器
- 分布式配置:使用Consul键/值存储
- 控制总线:使用Consul Events的分布式控制事件
值得一提的是:Consul作为注册中心和Eureka在使用上有些不同,包括但不限于Consul中的Server和Client短都通过一个Spring Boot程序快速启动,但是在Consul的使用中不会这样做,Consul使用的是官方提供的压缩包解压来直接启动作为服务端,同时也提供了可视化界面。
Consul优势
- 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft。
- 支持多数据中心