服务注册中心,当前用得比较多的就是 Eureka 跟 Zookeeper 了。
Eureka 是 SpringCloud 自带的组件,而 Zookeeper 则是 Dubbo 一般会选择的。我们以前在做服务这块其实是基于 Spring Cloud 技术栈来做的,没有选择Dubbo。所以,Eureka 也就作为了我们的服务注册中心首选。
在选择服务服务注册中心之前,我们一般会选择是基于 Spring Cloud 或者 Dubbo 来作为我们的微服务框架。选择好以后那么服务注册中心,一般情况下Dubbo作为服务框架的,一般注册中心会选择zk, Spring Cloud作为服务框架的,一般服务注册中心会选择Eureka。
除了这些对比以外还有其他的一些对比,是我们不得不去了解的。
一、高可用
eureka 集群模式
Eureka 集群模式,是peer-to-peer的,集群里面的每个机器的地位是相等的,不存在什么主从什么的说法。每个服务可以向任意一个Eureka 实例进行服务注册和服务发现,集群里面任意一个Eureka 实例接收到写请求以后,会自动同步给其他所有的 Eureka 实例。
看图一:
zookeeper
Zookeeper 服务注册与发现的原理则是 Leader + Follower两种角色。只有Leader 可以负责写,也就是服务注册,他可以把数据同步给所有的 Follower,读的时候ÿ