-
Notifications
You must be signed in to change notification settings - Fork 224
region zone route
chengyouling edited this page May 25, 2024
·
2 revisions
某些业务可能需要在不同的region、AZ部署相同的服务,但是使用同一个注册中心,这样会导致不同的region、AZ间相互调用,有可能引起网络延迟和数据归档等问题,因此就需要依赖安全隔离能力进行调用隔离。
开启数据中心亲和性路由功能开关配置,默认为false:
spring:
cloud:
servicecomb:
discovery:
enabledZoneAware: true
是否开启强制不允许跨region、zone调用,默认为false:
spring:
cloud:
servicecomb:
discovery:
denyCrossZoneLoadBalancing: true
实例添加region、zone属性:
- 使用Servicecomb引擎作为注册中心时配置:
spring:
cloud:
servicecomb:
discovery:
datacenter:
name: test
region: region1
availableZone: az1
- 使用Nacos引擎作为注册中心时配置:
spring:
cloud:
servicecomb:
discovery:
metadata:
region: region1
zone: az1
设定enabledZoneAware为true开启数据中心亲和性路由调用,注册中心使用servicecomb引擎,以1个consumer、2个provider实例来说明:
consumer设置属性:
spring:
cloud:
servicecomb:
discovery:
datacenter:
name: test1
region: region1
availableZone: az1
provider-instance1设置属性:
spring:
cloud:
servicecomb:
discovery:
datacenter:
name: test1
region: region1
availableZone: az1
provider-instance2设置属性:
spring:
cloud:
servicecomb:
discovery:
datacenter:
name: test2
region: region2
availableZone: az2
上述配置consumer只能调用到provider-instance1。
将consumer的属性改为:
spring:
cloud:
servicecomb:
discovery:
datacenter:
name: test3
region: region3
availableZone: az3
这时设置denyCrossZoneLoadBalancing为true时,provider将没有符合条件的实例可以调用;若denyCrossZoneLoadBalancing设置为false时,consumer轮询调用provider-instance1、provider-instance2实例。
如果使用Servicecomb引擎作为注册、配置中心,版本要求为1.7.0-2020.0.x及以上。
如果使用Nacos作为注册、配置中心时。 版本要求为1.11.0-2021.0.x及以上。
-
使用Spring Cloud Huawei功能
-
使用服务治理
-
生态集成
-
迁移改造问题
-
配置参考
-
优秀实践
-
常见问题