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

eureka zuul找不到我在eureka上注册的python应用程序

齐元章
2023-03-14

我有一个python web应用程序,并在eureka使用restful api[https://github.com/Netflix/eureka/wiki/Eureka-REST-operations]注册,我在eureka网页上找到了它的状态UP,但我的网关服务器(也在eureka注册)找不到它,我调用url网关服务器-host/myapp-url",以下响应为:

通用域名格式。netflix。祖尔。例外ZuuleException:组织中的转发错误。springframework。云netflix。祖尔。过滤器。路线带状布线过滤器。org上的handleException(RibbonRoutingFilter.java:188)。springframework。云netflix。祖尔。过滤器。路线带状布线过滤器。在org上转发(RibbonRoutingFilter.java:163)。springframework。云netflix。祖尔。过滤器。路线带状布线过滤器。运行(RibbonRoutingFilter.java:111)

...

原因:com。netflix。客户ClientException:负载平衡器没有可用于com上的客户端:测试的服务器。netflix。负载平衡器。LoadBalancerContext。com上的getServerFromLoadBalancer(LoadBalancerContext.java:483)。netflix。负载平衡器。反应性。LoadBalancer命令$1。在com上调用(LoadBalancerCommand.java:184)。netflix。负载平衡器。反应性。LoadBalancer命令$1。调用(LoadBalancerCommand.java:180)

对这个问题有什么建议吗???

共有3个答案

杨昊
2023-03-14

添加Sidecar可以在Zuul/routes显示注册的应用程序名称的情况下解决此问题。

您必须有经验,即使您没有实际的应用程序,只需在本文档后面添加任何名称和有效负载-[https://github.com/Netflix/eureka/wiki/Eureka-REST-operations],也可以在Eureka中注册为应用程序。

宇文念
2023-03-14

由于您使用的是Zuul,您需要手动注册路由。他们可以只包含来自Eureka的应用程序名称。

Zuul路由配置示例:

zuul:
 routes:
   application1: /app1/**
   application2: /app2/**
   application3:
     path: /app3/**
     url: http://10.0.8.11:3000/

应用N是在Eureka中注册的名称。url将自动解析和负载平衡。对于app3,url是手动指定的。

仇浩旷
2023-03-14

你看过Spring Cloud的侧车了吗?

它基本上是通过非jvm语言服务(在您的例子中是python)和sidecar服务(如果我没有弄错的话,您必须在同一台主机上部署python服务和sidecar服务)提供的服务,并且您将在Zuul中包含sidecar服务的endpoint,它将尝试处理类似于eureka之类的事情。

您启动了一个新的spring boot应用程序,添加了@EnableSidecar注释,您可以配置健康uri端口

例子application.yml

server:
  port: 5678
spring:
  application:
    name: sidecar

sidecar:
  port: 8000
  health-uri: http://localhost:8000/health.json

您可以在这里查看SpringCloud关于Sidecar的文档,了解如何设置它的更多详细信息

 类似资料:
  • 朋友们好,当我在linux机器上以产品的形式启动eclipse rcp应用程序时,我遇到了以下错误 !entry org.eclipse.osgi 2 0 201 2-11-08 04:37:14.171!message以下是未解析的包的完整列表,如果存在根本原因,请参阅前面的日志条目:!subentry 1 org.eclipse.osgi 2 0 201 2-11-08 04:37:14.17

  • 该应用程序在Eureka注册后以“未知”的状态启动,并且从未更改为“启动”。如果这些标志中的任何一个被设置为false,那么应用程序启动时注册为“up”。 当两个标志都启用/true时,我看到了以下一系列日志记录: 我如何让应用程序注册为启用了这两个标志/真? bootstrap.yml

  • 我正在开发一个微服务,我正在尝试使用Zuul代理来路由这些服务。但由于某些原因,Zuul无法路由到在eureka注册的应用程序。我尝试过增加hystrix和Zuul超时,但没有效果 引发异常 通用域名格式。netflix。祖尔。例外ZuuleException:组织转发错误。springframework。云netflix。祖尔。过滤器。路线带状路由过滤器。handleException(Ribb

  • 我有一个gradle项目。在那里,我尝试启动一个Eureka服务器。以下是我的设置: //compileOnly('org.springframework.cloud:spring cloud starter netflix eureka server:')] 通过这种方式,我尝试启动应用程序: @EnableEurekaServer公共类EurekaServer{ } 但不幸的是,报告出现了一些

  • 我有以下服务: EurekaServer—承载eureka发现服务器 是否有办法获取客户端服务的ip,以便我可以从Finder服务向其发出请求。 我知道有一种方法可以从EurekaServer找到InstanceInfo,我正在考虑在eureka服务器中创建一个控制器,在那里您可以传递服务ID并获得服务的实例ip。这样,Finder-service只需要知道服务ID和eureka ip,因为它在那

  • 我正试图注册一个应用程序可用通过https只。我有问题与正确的配置和链接显示在尤里卡的仪表板是不正确的。我已经尝试了一些配置,但我不能得到正确的效果,即在尤里卡工作仪表板链接。 示例:health-check-url:https://${eureka.hostname}/ctx/health 结果:https://localhost/ctx/info 使用${server.port}替换的绝对UR