我正在使用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配置
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 回答
您可以使用以下配置实现此目的
说明:
zuul.ignored-services=* 这会抑制默认配置
zuul.routes.company-帐户api.serviceId =公司帐户API
zuul.routes.company-帐户api.path = /公司-API /公司帐户-API / **
暴露给公众的是/ company-api / company-account-api / **,它将在内部映射到company-account-api服务 .
如果您不使用服务发现,则可以使用url而不是服务名称来执行此操作