SpringCloud:Eureka微服务跨分区调用region、zone、gateway
PS:未经测试,后补目的系统为分区架构,减少中心化服务,避免单点风险。region1和region2为完全独立分区,分区数据无交集,互不依赖。region1中的处理由于特殊原因用到region2中的服务,需要提供技术支持。思路新架构不影响独立region内部架构region直接互不影响通过gateway处理转发逻辑并进行转发,如果是同一个region直接路由到内部微...
·
PS:未经测试,后补
目的
系统为分区架构,减少中心化服务,避免单点风险。
region1和region2为完全独立分区,分区数据无交集,互不依赖。
region1中的处理由于特殊原因用到region2中的服务,需要提供技术支持。
思路
- 新架构不影响独立region内部架构
- region直接互不影响
- 通过gateway处理转发逻辑并进行转发,如果是同一个region直接路由到内部微服务,如果是另一个region则通过调用其他region的网关路由到其微服务。
架构设计
原始架构

需求架构

设计架构

技术实现
eureka server配置
gateway的独立region注册中心
spring:
application:
name: eureka-server
eureka:
client:
region: region0 #独立区域
availability-zones:
region0: zone-0 #内部集群
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
provider1的独立region注册中心
spring:
application:
name: eureka-server
eureka:
client:
region: region1 #独立区域
availability-zones:
region0: zone-0 #内部集群
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
provider2的独立region注册中心
spring:
application:
name: eureka-server
eureka:
client:
region: region2 #独立区域
availability-zones:
region0: zone-0 #内部集群
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
eureka client配置
gateway注册
spring:
application:
name: gateway
eureka:
instance:
metadata-map:
zone: zone-0 #归属zone,优先调用zone-0
client:
region: region0
availability-zones:
region0: zone-1
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://10.2.55.100:31000/eureka/
zone-1: http://10.2.55.100:31000/eureka/
zone-2: http://localhost:9002/eureka
provider1注册
spring:
application:
name: provider1
eureka:
instance:
metadata-map:
zone: zone-1 #归属zone,优先调用
client:
region: region1
availability-zones:
region0: zone-0
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka/
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
provider2注册
spring:
application:
name: provider2
eureka:
instance:
metadata-map:
zone: zone-2 #归属zone,优先调用
client:
region: region2
availability-zones:
region0: zone-0
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka/
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
consumer注册
spring:
application:
name: consumer1
eureka:
instance:
metadata-map:
zone: zone-1 #归属zone,优先调用
client:
region: region1
availability-zones:
region0: zone-0
region1: zone-1
region2: zone-2
service-url:
zone-0: http://localhost:9001/eureka,http://localhost:9002/eureka/
zone-1: http://localhost:9001/eureka
zone-2: http://localhost:9002/eureka
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)