源码解析-Eureka Client(预备知识)

1、Eureka的异地多活

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

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

多活则是指这些机房间属于主从关系,即这些机房平时都支撑业务需求,都对外提供服务,相互备份。

 

2、Region与Zone

Eureka中具有Region与Availability Zone(简称AZ)概念,都是云计算中的概念。

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

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

例如,AWS将全球划分为了很多的Region,例如美国东部区、美国西部区、欧洲区、非洲开普敦区、亚太区等。像Eureka系统架构图中的us-east-1c、us-east-1d、us-east-1e就是us-east-1这个Region中的c、d、e三个AZ。

再如,阿里云在我国境内的Region有杭州、北京、深圳、青岛、香港等,境外Region有亚太东南1区(新加坡)、亚太东南2区(悉尼)、亚太东北1区(东京)等。 
 

3、Eureka中的Region与Zone配置 

需求

假设某公司的服务器有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配置

Server AZ bj-2配置

Zuul AZ bj-1配置

Zuul AZ bj-2配置

Service AZ bj-1配置

Service AZ bj-2配置

 

优先选择同zone服务配置

当一个region有多个zone时,微服务调用应用时优先调用同zone内的应用。原因是eureka client有个配置prefer-same-zone-eureka,默认为true。当同zone中的应用均不可用时,才会调用其它zone中的服务。

指定远程Region配置

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

 

posted @   幻月hah  阅读(411)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-04-01 打开一个vue项目
2019-04-01 VUE开发环境配置
点击右上角即可分享
微信分享提示