春天zuul +尤里卡路线代表团

时间:2018-03-06 07:31:45

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

我正在使用Spring Cloud Zuul + Eureka Server。我知道Zuul会在Eureka上注册服务时动态创建路由,并且它将使用他们的服务ID进行路由。是否可以将路由委托给组服务?

例如,我有2个服务,我想分组:

server.port=8081
spring.application.name=company-account-api

server.port=8082
spring.application.name=company-transaction-api

eureka config

spring.application.name=api-discovery
spring.cloud.config.uri=${CONFIG_SERVER_URL:http://localhost:8888}

在Zuul上是否可以定义一条路线,我可以访问在尤里卡注册的2项服务?

server.port=9090
spring.application.name=api-gateway
eureka.instance.preferIpAddress=true
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.serviceurl.defaultzone=http://localhost:8761/eureka
zuul.routes.company-api=/company-**

所以当我访问http://localhost:9090/company-api/company-account-api& http://localhost:9090/company-api/company-transaction-api在eureka上注册的服务将可用

1 个答案:

答案 0 :(得分:0)

您可以使用以下配置

来实现此目的
zuul.ignored-services=*
zuul.routes.company-account-api.serviceId=company-account-api
zuul.routes.company-account-api.path=/company-api/company-account-api/**

zuul.routes.company-transaction-api.serviceId=company-transaction-api
zuul.routes.company-transaction-api.path=/company-api/company-transaction-api/**

说明:
    zuul.ignored-services = * 这会压制默认配置

zuul.routes.company-帐户api.serviceId =公司帐户-API
    zuul.routes.company-account-api.path = / company-api / company-account-api / **

公开的是/ company-api / company-account-api / **,它将在内部映射到company-account-api服务。

如果您没有使用服务发现,那么您可以使用网址而不是服务名称来执行此操作

zuul.routes.company-account-api.url=http://accountapihost:accountapiport
zuul.routes.company-account-api.path=/company-api/company-account-api/**