我们拥有一个具有服务发现和负载平衡的基础架构(即服务器端具有STM和weblogic集群)。现在我们正在重构为微服务。我们需要一个API网关,它可以对其他微服务进行基本路由。 Netflix Zuul看起来很不错,但是如果没有Eureka我就无法让Zuul工作 - 但我们不需要Eureka,因为我们已经有了服务发现和负载平衡。
感谢。
答案 0 :(得分:14)
是的,这完全有可能。您必须在配置类上使用@EnableZuulProxy
并将其配置为:
zuul:
routes:
yourService:
path: /yourService/**
serviceId: yourService
ribbon:
eureka:
enabled: false
yourService:
ribbon:
listOfServers: localhost:8080
答案 1 :(得分:2)
示例用法可以是这样的:
shared.microservice.customer.service1.url=zttp://127.0.0.1:8080/shared/microservice/customer/
shared.microservice.customer.service2.url=zttp://127.0.0.1:8181/shared/microservice/customer/
ribbon.eureka.enabled = false
zuul.routes.customer-micro-service.path: /shared/microservice/customer/**
zuul.routes.customer-micro-service.serviceId: customers
customers.ribbon.listOfServers =
zttp://ip:port1/shared/microservice/customer/,zttp://ip2:port2/shared/microservice/customer/
答案 2 :(得分:1)
是的,当然可以。实际上,默认情况下,如果您将 @EnableZuulProxy 与Spring Boot Actuator结合使用,则会启用两个附加端点:
application.yaml
zuul:
routes:
users:
path: /myusers/**
url: https://example.com/users_service
这些简单的url路由不会作为 HystrixCommand 执行,也不会通过 Ribbon 负载均衡多个URL。
您可以从here获取更多信息。