SpringCloud——Eureka

微服务架构中最核心的部分是服务治理,服务治理最基础的组件是注册中心。

关于注册中心的解决方案,dubbo支持了Zookeeper、Redis、Multicast和Simple,官方推荐Zookeeper。Spring Cloud支持了Zookeeper、Consul和Eureka,官方推荐Eureka。

两者之所以推荐不同的实现方式,原因在于组件的特点以及适用场景不同。简单来说:

  • ZK的设计原则是CP,即强一致性和分区容错性。他保证数据的强一致性,但舍弃了可用性,如果出现网络问题可能会影响ZK的选举,导致ZK注册中心的不可用。
  • Eureka的设计原则是AP,即可用性和分区容错性。他保证了注册中心的可用性,但舍弃了数据一致性,各节点上的数据有可能是不一致的(会最终一致)。

Eureka采用纯Java实现,除实现了注册中心基本的服务注册和发现之外,极大的满足注册中心的可用性,即使只有一台服务可用,也可以保证注册中心的可用性。

组件调用关系

服务提供者:

  1. 启动后,向注册中心发起register请求,注册服务
  2. 在运行过程中,定时向注册中心发送renew心跳,证明“我还活着”。
  3. 停止服务提供者,向注册中心发起cancel请求,清空当前服务注册信息。

服务消费者

  1. 启动后,从注册中心拉取服务注册信息
  2. 在运行过程中,定时更新服务注册信息。
  3. 服务消费者发起远程调用

注册中心

  1. 启动后,从其他节点拉取服务注册信息。
  2. 运行过程中,定时运行evict任务,剔除没有按时renew的服务(包括非正常停止和网络故障的服务)。
  3. 运行过程中,接收到的register、renew、cancel请求,都会同步至其他注册中心节点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值