设置了 server.contextPath 的 Spring Boot 与通过 Eureka Server 访问 hystrix.stream 的 URL

2024-05-20

我有运行 Turbine 实例的 Eureka Server 以及连接到它的一些发现客户端。一切正常,但如果我注册一个发现客户端server.contextPath设置后,它没有被识别InstanceMonitor涡轮流无法结合其hystrix.stream.

这是 Eureka/Turbine 服务器日志中的样子:

2015-02-12 06:56:23.265  INFO 1 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Hosts up:3, hosts down: 0
2015-02-12 06:56:23.266  INFO 1 --- [        Timer-0] c.n.t.monitor.instance.InstanceMonitor   : Url for host: http://user-service:8887/hystrix.stream default
2015-02-12 06:56:23.268 ERROR 1 --- [InstanceMonitor] c.n.t.monitor.instance.InstanceMonitor   : Could not initiate connection to host, giving up: []
2015-02-12 06:56:23.269  WARN 1 --- [InstanceMonitor] c.n.t.monitor.instance.InstanceMonitor   : Stopping InstanceMonitor for: user-service default

com.netflix.turbine.monitor.instance.InstanceMonitor$MisconfiguredHostException: []
    at com.netflix.turbine.monitor.instance.InstanceMonitor.init(InstanceMonitor.java:318)
    at com.netflix.turbine.monitor.instance.InstanceMonitor.access$100(InstanceMonitor.java:103)
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:235)
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:229)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

它尝试从中获取 hystrix 流http://user-service:8887/hystrix.stream其中包含 sever.contextPath 的正确 URL 应该是http://user-service:8887/uaa/hystrix.stream

The application.yml该客户端包含:

server:
  port: 8887
  contextPath: /uaa

security:
  ignored: /css/**,/js/**,/favicon.ico,/webjars/**
  basic:
    enabled: false

我的问题是:我是否应该向此用户服务发现客户端添加一些额外的配置选项以注册正确的 hystrix.stream URL 位置?

我还没有深入研究这个问题,如果在回答这个问题之前发现了一些东西,我会让你知道。

目前的解决方案

使用的时候有一个问题server.contextPath and management.context-path。当两者都设置好后,涡轮机流将被提供${HOST_URL}/${server.contextPath}/${management.context-path}/hystrix.stream。在那种情况下我不得不放弃使用server.contextPath(我将其替换为控制器中的前缀@RequestMapping).

现在,当您使用management.context-path,那么您的 hystrix.stream 将从使用它作为前缀的 URL 提供服务。在这种情况下,你必须遵循 Spencer 的建议并设置

turbine.instanceUrlSuffix=/{PUT_YOUR_MANAGEMENT_CONTEXT_PATH_HERE}/hystrix.stream

当然还有这个management.context-path必须为所有发现客户端设置相同的值 - 这可以使用 Spring Cloud Config 轻松完成http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html


您可以设置turbine.instanceUrlSuffix.<CLUSTERNAME>=/uaa/hystrix.stream。在哪里<CLUSTERNAME>是设置的值turbine.aggregator.clusterConfig。所有配置选项来自涡轮机 1 维基 https://github.com/Netflix/Turbine/wiki/Configuration-%281.x%29工作。您不需要将端口添加到后缀,因为 Spring Cloud Netflix Turbine 添加来自 eureka 的端口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置了 server.contextPath 的 Spring Boot 与通过 Eureka Server 访问 hystrix.stream 的 URL 的相关文章

随机推荐

  • WinForms:如何确定窗口是否不再活动(没有子窗口具有焦点)?

    我的应用程序使用多个窗口 我想隐藏一个特定窗口 以防应用程序失去焦点 当活动窗口不是应用程序窗口时 source https stackoverflow com questions 466354 how can i tell if a wi
  • 在C语言中使用“void”

    我很困惑为什么我们需要通过void转换为 C 函数 int f void return 0 versus int f return 0 什么是正确的做法以及为什么 In C int f 是一种老式的声明 它说f需要固定但未指定数量和类型的参
  • 列表应该如何转换为具体的实现?

    假设我正在使用一个我不知道源代码的库 它有一个返回列表的方法 如下所示 public List
  • 如何在React中的Material-UI选择框中设置默认值?

    我在用选择框 https material ui com demos selects 来自材料用户界面 我想显示默认选择的 选择值 选项 但之后用户无法选择此选项
  • 具有子列表属性映射问题的自动映射器

    我有以下型号 Models public class Dish Required public Int64 ID get set Required public string Name get set Required public str
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • Azure VM 上的 MongoDb 连接超时

    将我的 Azure Web 应用程序连接到 Azure VM 上托管的 MongoDb 时 我遇到一些超时问题 2015 12 19T15 57 47 330 0100 I NETWORK Socket recv errno 10060 A
  • 基本的多对多sql选择查询

    我认为这应该很容易 但它却在逃避我 我的帐户和帐户组之间存在多对多关系 一个帐户可以位于零个或多个组中 因此我使用标准连接表 Accounts ID BankName AcctNumber Balance AccountGroups ID
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 客户端 Javascript 应用程序 - 不带哈希标签的 url 路由

    我正在使用最新版本的 Ember js 开发一个新的仅客户端应用程序 有一个 PHP 页面可以构建脚本 CSS 模板文件等 并将其全部传递到 index php 中 我使用 htaccess 指令 以便所有请求都重写到 index php
  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • 设置了 server.contextPath 的 Spring Boot 与通过 Eureka Server 访问 hystrix.stream 的 URL

    我有运行 Turbine 实例的 Eureka Server 以及连接到它的一些发现客户端 一切正常 但如果我注册一个发现客户端server contextPath设置后 它没有被识别InstanceMonitor涡轮流无法结合其hystr