20

我们有一个具有服务发现和负载平衡的基础设施(即带有 STM 和 weblogic 集群的服务器端)。现在我们正在重构为微服务。我们需要一个 API 网关来执行到其他微服务的基本路由。Netflix Zuul 看起来是一个不错的候选者,但是如果没有 Eureka,我无法让 Zuul 工作——但我们不需要 Eureka,因为我们已经有了服务发现和负载平衡。

  1. 是否可以在没有 Eureka 和 Ribbon 的情况下使用 Zuul?
  2. 如果是,请提供一些行会,因为 wiki 中没有提及。

谢谢。

4

3 回答 3

27

是的,这是完全可能的。你必须@EnableZuulProxy在你的配置类上使用并配置它:

zuul:
  routes:
    yourService:
      path: /yourService/**
      serviceId: yourService

ribbon:
  eureka:
    enabled: false

yourService:
  ribbon:
    listOfServers: localhost:8080
于 2015-12-02T12:16:08.917 回答
3

示例用法可以是这样的:

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/
于 2016-04-27T13:15:19.387 回答
1

是的,当然可以。实际上,默认情况下,如果将@EnableZuulProxy与 Spring Boot Actuator 一起使用,则会启用两个额外的端点:

  • 路线
  • 过滤器

应用程序.yaml

zuul:
  routes:
    users:
      path: /myusers/**
      url: https://example.com/users_service

这些简单的 url-routes 不会作为HystrixCommand执行,也不会使用Ribbon对多个 URL 进行负载平衡。

哟可以从这里获得更多信息。

于 2020-02-07T07:14:12.173 回答