2017-04-26 115 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

相關問題