【问题标题】:Eureka service - locations尤里卡服务 - 地点
【发布时间】:2017-09-23 14:51:10
【问题描述】:

我是 Spring Boot 和 Spring Cloud 的新手。 我想问一下我是否可以为多个位置(不同国家/地区)提供一项 eureka 服务。

例如 一项运行两次的 eureka 服务和一项应用程序服务 - 用于位置 SLOVAKIA,另一项用于位置 CZECH。 然后我想为那个位置和另一个公共服务提供边缘服务。 有可能吗?

配置尤里卡服务

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

配置服务-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。 Profile (cz) 具有相同的行为。这很好。 但是当 service-a (profile: sk) 宕机时,service-a-apigateway (profile: sk) 可以调用 service-a (profile: cz)。这种行为是不可取的。

【问题讨论】:

    标签: spring-boot spring-cloud netflix-eureka


    【解决方案1】:

    我认为是这样,通过在 zuul 边缘和服务 A 上设置属性 eureka.instance.metadataMap.zone

    “默认情况下,它将用于在与客户端相同的区域中定位服务器......”

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 2018-04-15
      • 2019-11-16
      • 1970-01-01
      • 2019-02-15
      • 2018-05-12
      • 2015-09-29
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多