2017-04-26 114 views
0

我是新来的春季启动和春天的云。 我想问一下我是否可以为多个地点(不同的国家)提供一个eureka服务。尤里卡服务 - 地点

例如 一个eureka服务和一个运行两次的应用程序服务 - 位置斯洛伐克和另一个位置捷克。 然后我想要为该位置和另一个常见服务提供边缘服务。 这可能吗?

diagram

配置尤里卡服务

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/ 

配置服务-一个

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 

配置服务-A-apig ateway

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 

eureka instances

服务A-apigateway(简介:SK)只能拨打服务A(简介:SK)和服务普遍。配置文件(cz)具有相同的行为。这很好。 但是当service-a(profile:sk)关闭时,service-a-apigateway(profile:sk)可以调用service-a(profile:cz)。这种行为是不可取的。

回答

0

当我运行三个eureka服务,并且其中一个(通用eureka)复制到其余两个服务时,我能够解决它。但我不知道这是不是一个好主意。

eureka

0

我是这么认为的,通过两个zuul边缘和服务A.

设置属性eureka.instance.metadataMap.zone“默认情况下,它会被用来定位在同一区域作为客户端的服务器......”

http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_using_ribbon_with_eureka

+0

谢谢您的建议。我更新了我的问题。 – Bully

+0

我看到了,你想完全限制它,不只是喜欢它。默认值是ZonePreferenceServerListFilter,它将回退到其他区域。您可以创建自己的服务器列表筛选器并对其进行配置。 请参阅ZonePreferenceServerListFilter的源代码,https://github.com/spring-cloud/spring-cloud-netflix/blob/master/spring-cloud-netflix-core/src/main/java/org/springframework/ cloud/netflix/ribbon/ZonePreferenceServerListFilter.java 然后使用新过滤器重新配置功能区。 http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_customizing_the_ribbon_client – nedenom

相关问题