gpt4 book ai didi

spring-boot - 何时配置 zuul 路由

转载 作者:行者123 更新时间:2023-12-04 13:57:20 25 4
gpt4 key购买 nike

我是 spring cloud 的新手,正在浏览一些在线可用的示例和 Material ,以使自己感到舒适。但是,在阅读 ZUUL 时,一些站点在 ZUUL 的 application.yml 中配置了路由。其他一些站点提到请求将转发到相应的微服务,无需显式配置路由。我有点困惑。例如,在下面的场景中,配置路由还是让 zuul 自动路由的方法是什么?

  • 假设我运行的微服务很少,并且所有微服务都与 ZUUL 一起注册到 Eureka。
  • 我有一个前端,它运行在同一台服务器上的不同端口上,需要与上述微服务进行交互。
  • 我还有一些其他应用程序(完全在不同的服务器上运行)需要与上述微服务交互以获取数据。

  • TIA..

    最佳答案

    您是否使用 Zuul(通过 Eureka 知道微服务地址)在您的微服务之间转发请求?如果是这种情况,则您正在使用服务器端负载平衡模式。

    如果您使用发现服务(在您的情况下为 Eureka),我认为最好的方法是对所有服务间请求(在您的系统内)使用客户端负载平衡模式。 (您可以为此使用 Ribbon 或 RestTemplate)。

    您可以将 Zuul 用作系统的统一前门,它允许浏览器、移动应用程序或其他用户界面使用来自多个主机的服务,而无需管理每个主机的跨源资源共享 (CORS) 和身份验证。

    例如:客户端(移动应用程序)请求所有图片评论。客户端不需要知道 Comments-service 地址。只需要代理地址,Zuul 会将请求转发给正确的服务。您可以在 application.yml/.properties 中执行此操作经过

    zuul.routes.comments.path=/comments/**
    zuul.routes.comments.service-id=comments

    请求将是 GET www.myproxy.mycompany.com/comments .不要忘记您的 application.yml/.properties 中的服务名称非常重要( spring.application.name )。它是 Zuul 路由中的 service-id(与 Eureka 中的标识符相同)。

    出于某种原因,您的系统需要请求外部服务(正如您在第三个注释中提到的)。在这种情况下,您的外部服务不是发现客户端,Zuul 无法从 Eureka 中查找 service-id。你使用路由作为
    zuul.routes.currencyprovider.path=/currencies/**
    zuul.routes.currencyprovider.url=https://currencies.net/

    这条路线,所有 /currencies/**来自您的服务的请求 通过 Zuul 将完成。
    通过这种方法,您的所有系统都只有一扇门。这是 API Gateway pattern .

    有时您的系统需要聚合来自不同服务的多个结果来响应客户端请求。您可以在代理中执行此操作(在您的情况下为 Zuul)。

    关于spring-boot - 何时配置 zuul 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238335/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com