当前位置: 首页 > 知识库问答 >
问题:

Spring Boot Zuul:映射多个路由URL

韦衡
2023-03-14

我们使用SpringBoot和Zuul代理将API请求转发给API。示例配置如下所示:

zuul.routes.common.url=http://10.0.0.1:8081/common
zuul.routes.meta.url=http://10.0.0.2:8082/meta

这一切都很好。为了平衡负载并有效利用底层服务器,我们希望在配置中指定多个URL,并为其中一个URL启用请求转发。确切地说,我们希望通过提供可以处理请求的以逗号分隔的endpoint列表来配置下面给出的代理配置。

zuul.routes.common.url=http://10.0.0.1:8081/common,http://10.0.0.11:8081/common
zuul.routes.meta.url=http://10.0.0.2:8082/meta,http://10.0.0.12:8082/meta

但不幸的是,这样的配置会导致“资源未找到错误”。

问题:

  1. 这是一种可能的配置吗
  2. 如果没有,是否有可能通过其他方式实现这一目标

你好,曼朱纳

编辑:答案

仅使用Zuul无法配置多个URL。请求需要使用功能区进行负载平衡。下面是带色带的示例配置:

zuul.routes.common.path=/**
zuul.routes.common.serviceId=common
common.ribbon.listOfServers=http://10.0.0.1:8081/common,http://10.0.0.2:8081/common

共有1个答案

邓毅
2023-03-14

要使用Ribbon,并且属性client.ribbon.listOfServers。这里有一个快速的例子

zuul:
  routes:
    users:
      path: /myusers/**
      serviceId: users

ribbon:
  eureka:
    enabled: false

users:
  ribbon:
    listOfServers: example.com,google.com
 类似资料:
  • 生成路由映射缓存optimize:route 路由映射缓存用于开启路由延迟解析的情况下,支持路由反解的URL生成,如果你没有开启路由延迟解析或者没有使用URL路由反解生成则不需要生成。 生成路由映射缓存的命令: php think optimize:route 执行后,会在runtime目录下面生成route.php文件。

  • 问题内容: 考虑一下我有一段字符串路径: 使用package ,我想使用带有range子句的循环为该路径注册处理程序。这就是我的方法: 编辑:基本上,问问者使用此代码: 但是我最终得到了相同的输出,这是slice的最后一个元素,所以当我转到时,输出为。与其他元素的行为相同,始终为print 。 但是如果我使用这个: 输出正确。 怎么了,我错过了什么吗?我需要通过路径或地图切片给出的注册循环,所以我

  • 问题内容: 我有一条路线映射为: 如何在运行时删除/重新映射此路由到空处理程序? 问题答案: 这将删除中间件和/或(获取/发布)路由。在express@4.9.5上测试 请注意,它 要求 中间件/路由功能具有 名称 : 如果该函数是匿名的, 它将不起作用 :

  • 我想映射这两个不同的servlet(使用addServletWithMapping): 但第二个显然从未达到,是否有其他特殊的字符,我可以在字符串路径中使用来解决这个问题?

  • 有两张数据表,通过第三张数据表来表示关联关系,我们称之为多对多的映射 如上图,通过一个中间数据表的两个字段,分别指向两个对象的主键,可以实现多对多映射。所以,Pet.foods(一个 List<Food>) 或者 Food.pets(一个List<Pet>)就是多对多映射。 在 POJO 中配置多对多映射 在 POJO 类中字段中增加注解 @ManyMany: @Table("t_food")

  • 我需要多个嵌套路由 我用的是react-router-dom的v4 我有我的 我需要组件渲染成这样 Home组件包含Page1、Page2和Page3组件共有的标题组件,但不存在于Login和About中。 我的js代码是这样读的 我希望登录组件只显示在 /login当我请求 /page1、 /page2、 /page3时,它们应该分别包含主页组件和该页面的内容。 取而代之的是呈现的登录组件,在该