Eureka分区策略

Eureka分区策略

第一步:背景和概念介绍

背景:
用户量比较大或者用户地理位置分布范围很广的项目,一般都会有多个机房。这个时候如果上线springCloud服务的话,我们希望一个机房内的服务优先调用同一个机房内的服务,当同一个机房的服务不可用的时候,再去调用其它机房的服务,以达到减少延时的作用。

概念:
region:能够简单理解为地理上的分区。好比亚洲地区,或者华北地区,再或者北京地区等等,没有具体大小的限制,根据项目具体的状况,能够自行划分region。 zone:能够简单理解为 region 内的具体机房,好比说 region 划分为华北地区,而后华北地区有两个机房,就能够在此 region 之下划分出 zone1、zone2 两个 zone eureka 也借用了 region 和 zone 的概念架构

如图所示,有一个 region:华北地区,下面有两个机房,机房A 和机房Burl

  • 每一个机房内有一个 Eureka Server 集群 和两个服务提供者 ServiceA 和 ServerB
  • 如今假设 serverA 须要调用 ServerB 服务,按照就近原则,serverA 会优先调用同一个 zone 内的 ServiceB,当 ServiceB 不可用时,才会去调用另外一个 zone 内的 ServiceBcode

第二步:相关参数介绍

服务注册相关:

 

eureka: client: # 尽可能向同一区域的 eureka 注册,默认为true prefer-same-zone-eureka: true #地区 region: huabei availability-zones: huabei: zone-1,zone-2 service-url: zone-1: http://Eureka的Ip地址:8761/eureka/ zone-2: http://Eureka的Ip地址:8761/eureka/

当存在多个注册中心时,选择逻辑为cdn

  • 若是 prefer-same-zone-eureka 为 false,按照 service-url 下的 list 取第一个注册中心来注册,并和其维持心跳检测,再也不向list内的其它的注册中心注册和维持心跳。server只有在第一个注册失败的状况下,才会依次向其它的注册中心注册,总共重试3次,若是3个service-url都没有注册成功,则注册失败。blog

注册失败后每隔一个心跳时间,会再次尝试。it

  • 若是 prefer-same-zone-eureka 为true,先经过 region 取 availability-zones 内的第一个zone,而后经过这个zone取 service-url 下的list,并向list内的第一个注册中心进行注册和维持心跳,再也不向list内的其它的注册中心注册和维持心跳。只有在第一个注册失败的状况下,才会依次向其它的注册中心注册,总共重试3次,若是3个service-url都没有注册成功,则注册失败。注册失败后每隔一个心跳时间,会再次尝试。

为了保证服务注册到同一个 zone 的注册中心,必定要注意 availability-zones 的顺序,必须把同一 zone 写在最前面

 

eureka: instance: # 服务和注册中心的心跳间隔时间,默认为30s lease-renewal-interval-in-seconds: 30 # 服务和注册中心的心跳超时时间,默认为90s lease-expiration-duration-in-seconds: 90 metadata-map: # 当前服务所属的 zone zone: zone1

  • 服务消费者和服务提供者分别属于哪一个zone,均是经过 eureka.instance.metadata-map.zone 来断定的。
  • 服务消费者会先经过 ribbon 去注册中心拉取一份服务提供者的列表,而后经过 eureka.instance.metadata-map.zone 指定的 zone 进行过滤,过滤以后若是同一个 zone 内的服务提供者有多个实例,则会轮流调用。
  • 只有在同一个 zone 内的全部服务提供者都不可用时,才会调用其它zone内的服务提供者。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值