0
点赞
收藏
分享

微信扫一扫

SpringCloud源码分析 (Eureka-Client-架构) (一)

注册中心架构图
SpringCloud源码分析 (Eureka-Client-架构) (一)_java


文章目录

  • ​​1.Eureka的异地多活解析​​
  • ​​2.Reign和Zone概念解析​​
  • ​​3.Eureka中的Region与Zone配置​​

1.Eureka的异地多活解析

异地多活一般是指不同城市建立的独立数据中心

活相对的是主备关系中的热备而言的, 热备是指备份机房随时全量备份着主机房中的数据, 但是平时不支撑业务, 对外不提供服务, 只要在主机房出现故障的时候会切换到备份机房, 就是说平时来说, 只有主机房是活的。

多活是指这些机房属于主从模式, 即这些机房都对外提供服务, 相互备份。

2.Reign和Zone概念解析

SpringCloud源码分析 (Eureka-Client-架构) (一)_springcloud_02

Eureka中具有Region与Availability Zone(简称AZ)概念。

Region: 为了方便不同地理区域中用户的使用,大型云服务提供商一般会根据用户需求量在不同的城市、省份、国家或洲创建不同的大型云计算机房。这些不同区域机房间一般是不能“内网连通”的。

同一Region机房是如何实现同域容灾的

为了增强容灾能力,在一个Region中又设置了不同的Availability Zone。这些AZ间实现了内网连通,且用户可以根据自己所在的具体位置自动选择同域中的不同AZ。当用户所要访问的AZ出现问题后,系统会自动切换到其它可用的AZ。

像Eureka系统架构图中的us-east-1c、us-east-1d、us-east-1e就是us-east-1这个Region中的c、d、e三个AZ。

3.Eureka中的Region与Zone配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_地理位置_03
假设某公司的服务器有Beijing、Shanghai等多个Region。Beijing这个Region中存在两个AZ,分别是
bj-1与bj-2,每个AZ中有三台Eureka Server。

h-1与h-2两台主机提供的都是相同的Service服务,根据地理位置的不同,这两台主机分别注册到了距
离自己最近的不同AZ的Eureka Server。

Server AZ bj-1配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_java_04
Server AZ bj-2配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_地理位置_05
Zuul AZ bj-1配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_内网_06
Zuul AZ bj-2配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_spring_07
Service AZ bj-1配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_地理位置_08
Service AZ bj-2配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_地理位置_09
优先选择同zone服务配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_spring_10
当一个region有多个zone时,微服务调用应用时优先调用同zone内的应用。原因是eureka client有个配
置prefer-same-zone-eureka,默认为true。当同zone中的应用均不可用时,才会调用其它zone中的服
务。

指定远程Region配置

SpringCloud源码分析 (Eureka-Client-架构) (一)_java_11
对于本地Region中的所有服务均不可用时,可以指定从远程Region获取。不过这种情况获取到的结果
可能与从本地Region获取的结果不同,除非这些Region实现了跨域数据复制。若要想从远程Region获
取服务,客户端需要通过设置如上属性指定远程Region,并在defaultZone中指出这些远程域中Eureka
Server的地址。

举报

相关推荐

0 条评论