尤里卡服务 - 地点
Eureka service - locations
我是 spring 引导和 spring 云的新手。
我想问一下我是否可以为多个位置(不同国家)提供一个尤里卡服务。
例如
一项 eureka 服务和一项应用程序服务 运行 两次 - 位置斯洛伐克,另一个位置捷克。
然后我想为该位置和另一个公共服务提供边缘服务。
可能吗?
配置尤里卡服务
spring:
application:
name: eureka-service
server:
port: 8761
eureka:
instance:
preferIpAddress: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8761/eureka/
配置服务通用
server:
port: 9082
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
配置服务-a
spring:
application:
name: service-a
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
---
spring:
profiles: sk
server:
port: 9080
eureka:
instance:
metadataMap:
zone: skZone
---
spring:
profiles: cz
server:
port: 9081
eureka:
instance:
metadataMap:
zone: czZone
配置 service-a-apigateway
spring:
application:
name: service-a-apigateway
zuul:
routes:
book-apigateway:
serviceId: service-a
path: /api/**
book-common-api:
serviceId: service-common
path: /common/**
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
---
spring:
profiles: sk
server:
port: 9050
eureka:
instance:
metadataMap:
zone: skZone
---
spring:
profiles: cz
server:
port: 9051
eureka:
instance:
metadataMap:
zone: czZone
service-a-apigateway (profile: sk) 只能调用 service-a (profile: sk) 和 service-common。配置文件 (cz) 具有相同的行为。这很好。
但是当 service-a (profile: sk) 宕机时,service-a-apigateway (profile: sk) 可以调用 service-a (profile: cz)。这种行为是不可取的。
我想是的,通过在 zuul edge 和服务 A 上设置 属性 eureka.instance.metadataMap.zone
。
"By default it will be used to locate a server in the same zone as the client..."
http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_using_ribbon_with_eureka
当我有三个 eureka 服务 运行 并且其中一个(普通 eureka)复制到其余两个服务时,我能够解决它。但我不知道这是不是个好主意。
我是 spring 引导和 spring 云的新手。 我想问一下我是否可以为多个位置(不同国家)提供一个尤里卡服务。
例如 一项 eureka 服务和一项应用程序服务 运行 两次 - 位置斯洛伐克,另一个位置捷克。 然后我想为该位置和另一个公共服务提供边缘服务。 可能吗?
配置尤里卡服务
spring:
application:
name: eureka-service
server:
port: 8761
eureka:
instance:
preferIpAddress: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8761/eureka/
配置服务通用
server:
port: 9082
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
配置服务-a
spring:
application:
name: service-a
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
---
spring:
profiles: sk
server:
port: 9080
eureka:
instance:
metadataMap:
zone: skZone
---
spring:
profiles: cz
server:
port: 9081
eureka:
instance:
metadataMap:
zone: czZone
配置 service-a-apigateway
spring:
application:
name: service-a-apigateway
zuul:
routes:
book-apigateway:
serviceId: service-a
path: /api/**
book-common-api:
serviceId: service-common
path: /common/**
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
---
spring:
profiles: sk
server:
port: 9050
eureka:
instance:
metadataMap:
zone: skZone
---
spring:
profiles: cz
server:
port: 9051
eureka:
instance:
metadataMap:
zone: czZone
service-a-apigateway (profile: sk) 只能调用 service-a (profile: sk) 和 service-common。配置文件 (cz) 具有相同的行为。这很好。 但是当 service-a (profile: sk) 宕机时,service-a-apigateway (profile: sk) 可以调用 service-a (profile: cz)。这种行为是不可取的。
我想是的,通过在 zuul edge 和服务 A 上设置 属性 eureka.instance.metadataMap.zone
。
"By default it will be used to locate a server in the same zone as the client..."
http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_using_ribbon_with_eureka
当我有三个 eureka 服务 运行 并且其中一个(普通 eureka)复制到其余两个服务时,我能够解决它。但我不知道这是不是个好主意。