簡體   English   中英

AWS ECS Zuul路由

[英]AWS ECS Zuul routing

我正在AWS ECS上設置Spring Cloud,但是Zuul / Eureka遇到問題。 當我嘗試點擊端點“ / api / second / service2”時,我看到此錯誤:

由以下原因引起:com.netflix.client.ClientException:負載均衡器沒有適用於客戶端的服務器:service2

我正在為Eureka實例使用Elastic IP,如此處https://github.com/Netflix/eureka/wiki/Deploying-Eureka-Servers-in-EC2所述 我有2個Spring Boot應用程序,在Eureka中都看到了它們。 我可以直接擊中終點。 尤里卡

這是Eureka服務器的配置:

server:
  port: 8761
eureka:
  client:
    fetchRegistry: false
    registerWithEureka: false
    eurekaServerURLContext: eureka
    region: eu-west-3
    eurekaServerPort: 8761
    useDnsForFetchingServiceUrls: true
    eurekaServerDNSName: my.dns
  datacenter: cloud

服務2:

spring:
  application:
    name: service2
server:
  port: 8882
eureka:
  datacenter: cloud
  instance:
    preferIpAddress: true
  client:
    fetchRegistry: true
    eurekaServerURLContext: eureka
    region: eu-west-3
    eurekaServerPort: 8761
    useDnsForFetchingServiceUrls: true
    eurekaServerDNSName: my.dns

Zuul:

pring:
  application:
    name: api-gateway
server:
  port: 8080
eureka:
  datacenter: cloud
  client:
    fetchRegistry: true
    eurekaServerURLContext: eureka
    region: eu-west-3
    eurekaServerPort: 8761
    useDnsForFetchingServiceUrls: true
    eurekaServerDNSName: my.dns

zuul:
  prefix: /api
  routes:
    first-service:
      path: /first/**
      serviceId: service1
    second-service:
      path: /second/**
      serviceId: service2

您知道哪里可能出問題嗎?

編輯:僅當我將我的service2實例端口從8882映射到端口80時,它才有效

如我所見,您的service2未在service2中注冊,例如:

eureka:
  client:
    registerWithEureka: true

其余的配置是不需要的,那些是eureka服務器的配置,並且您不應該在任何服務中配置eureka服務器,它是在eureka服務本身中完成的。

它應該獲取注冊表,因此在service2您將擁有

spring:
  application:
    name: service2
server:
  port: 8882
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true

其余的服務也一樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM