Zuul边缘服务器可以在没有Eureka/Ribbon的情况下使用吗?

20

我们有一个具备服务发现和负载平衡功能的基础架构(即带有STM和weblogic集群的服务器端)。现在我们正在重构为微服务。我们需要一个API网关,它可以对其他微服务进行基本路由。Netflix Zuul看起来是一个不错的选择,但是我无法在没有Eureka的情况下让Zuul工作 - 但我们不需要Eureka,因为我们已经有了服务发现和负载平衡。

  1. 是否可以在没有Eureka和Ribbon的情况下使用Zuul?
  2. 如果是,请提供一些指南,因为维基百科上没有提到这个问题。

谢谢。

3个回答

27

是的,这完全可行。您需要在配置类上使用@EnableZuulProxy,并进行以下配置:

是的,它是完全可能的。您需要在配置类上使用@EnableZuulProxy,并进行以下配置:

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

ribbon:
  eureka:
    enabled: false

yourService:
  ribbon:
    listOfServers: localhost:8080

1
你也可以将 url 放在 yourService 下面。 - spencergibb
2
如果我不使用Spring Cloud,应该选择什么方式? - Divs
所有这些更改都在Zuul配置中,对吗?我需要在微服务“yourService”中做出任何更改吗? - Govind Prabhu
这些都在Zuul中,不需要更改下游服务。此外,Spring现在有自己的网关,如果您刚开始使用,建议查看:https://cloud.spring.io/spring-cloud-gateway/ - Ákos Ratku

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/

1
当然可以。实际上,如果您在Spring Boot Actuator中使用@EnableZuulProxy,则默认情况下会启用两个额外的端点:Routes和Filters。

application.yaml

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

这些简单的URL路由不会作为HystrixCommand执行,也不会使用Ribbon负载平衡多个URL。
您可以从此处获取更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接