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

serviceId提供的Zuul路由不起作用

羊舌赞
2023-03-14

我在不同的帖子上遇到了类似的问题,但它们对我来说毫无用处(没有答案或没有有用的答案)。我将在这里描述所有细节,并希望得到帮助。

我使用java8,spring boot 2.0.3,spring云元素基于Finchley。发布版本。

在我的test micro services应用程序中,我有下一个服务:配置服务器、发现服务(Eureka)、边缘服务(zuul)、卡服务。所有服务在启动时从配置服务器加载自己的配置。服务启动时没有问题。

Card-service-在启动时获得随机端口。这是通过serviceId将zuul rout配置为日历服务的原因。

zuul:
  debug:
    request: true
  routes:
    card-service:
        path: /card-service/**
        serviceId: card-service
        stripPrefix: true

使用discovery service client,我检测到下一个注册的服务[“边缘服务器”、“卡服务”]。所以zuul route使用相同的serviceId(卡服务)。服务名称是正确的,因为它在卡服务应用程序bootstrap中是相同的。yml

spring:
  application:
    name: card-service

我通过以下方式直接访问卡服务

http://localhost:59496/card-服务/api/卡

http://localhost:59496/api/cards

(我为它配置了相同的结果)。-很好。

我的Zuul(边缘服务器在8765端口启动),所以我希望通过

http://localhost:8765/card-service/api/cards

给出了同样的结果。但结果是空的。检查边缘服务器日志:

No handler mapping found for [/card-service/api/cards]
Last-Modified value for [/card-service/api/cards] is: -1

通过边缘服务器的执行器映射检查(http://localhost:8765/actuator/mappings-我在这里展示了最感兴趣的部分):

{
  "contexts": {
    "edge-server-1": {
      "mappings": {
        "dispatcherServlets": {
          "dispatcherServlet": [
            ...,
            {
              "handler": "org.springframework.cloud.netflix.zuul.web.ZuulController@24a37416",
              "predicate": "/card-service/**",
              "details": null
            },

你知道如何修复zuul的路线图吗?

共有1个答案

徐星阑
2023-03-14

这是我的失败。我以为我已经按照教程对其进行了配置,但在Spring Boot配置中,似乎使用了@EnableZuulServer而不是@EnableZuulProxy@EnableZuulProxy需要为Zuul加载已配置的路由,并且一切正常。

 类似资料:
  • 由于以下错误(npm 3.10.10,webpack 3.8.1),我无法使用vue routes get。如何解决这个问题 编译失败。 ./node_modules/babel loader/lib/node_modules/vue loader/lib/selector.js?type=script 我使用简单的网页包 Quotes.vue Quote.vue new-quote.vue Ap

  • 问题内容: 我对React还是比较陌生,我正在尝试弄清楚如何使React路由器正常工作。我有一个超级简单的测试应用程序,看起来像这样: 当我运行该应用程序时,home组件加载没有任何麻烦,并且当我单击“ Click Me”链接时,URL更改为localhost / about,但是什么也没有发生。如果单击刷新,则会显示“无法获取/关于”。显然我在做错事,但我一直无法弄清楚是什么。我也在使用Webp

  • 问题内容: 我是AngularJS的新手,正在尝试调试一些路由,但是我不知道如何显示/查看传递给routeprovider的路由。 例如,如果我当前的路由设置如下: 调试时,我想破坏代码,并在控制台日志中输入类似内容; 以显示将由“ .when”评估的路线。 问题答案: 您可以收听发出的多个事件。这些事件是: 和, (我鼓励阅读链接提供的文档,以获取每个文件的描述。) 此时,您可以在一个控制器或指

  • 问题内容: 我的目标是让http:// mydomain / route1 渲染React组件Component1和http:// mydomain / route2 渲染Component2。因此,我认为编写如下的路由是很自然的: http:// mydomain / route1可以正常工作,但http:// mydomain / route2却呈现Component1。 然后,我阅读了此问题

  • 问题内容: 似乎无法正常工作。通过日期是这样的: 在目标状态上忽略参数 码: 现场示例可以在 这里 找到 谢谢。 问题答案: 您不能在状态之间传递任意参数,您需要将它们定义为定义的一部分。例如 上面的代码将输出定义了contactId属性的对象。如果你去,你会的。 有关更多信息,请参见UI-Router URL路由的文档。

  • 问题内容: 我已经按照教程在我的应用程序中实现了路由 http://docs.angularjs.org/tutorial/step_07 我无法在IE7中使用我的版本,花了一段时间尝试找出我错过/做错的事情后,我注意到该示例不起作用。 http://angular.github.com/angular- phonecat/step-7/app/ 有人知道如何使它工作吗? 问题答案: 好的,我遇到