问题标签 [hystrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3681 浏览

spring-boot - 如何向 Turbine 添加额外的 Hystrix 指标聚合

我的设置是使用 netflix 库的 Spring Boot Cloud,我设法让 Turbine 从一项服务聚合 Hystrix 指标。但是,当我添加更多服务时,我看不到它们。

这是我的设置(也将其上传到 github 上: Project On Github

服务一:

飞行集成服务:

服务二:

优惠券服务:

尤里卡应用服务:

应用程序.yaml:

引导程序.yaml

最后是涡轮服务:

应用程序.yaml:

我究竟做错了什么?为什么我实际上不能汇总这两个服务 hystrix 指标(飞行集成服务,优惠券服务)谢谢。

0 投票
1 回答
1276 浏览

jdbc - Hystrix 应该替换现有的 JDBC/HTTP 连接池,还是委托给它们?

许多应用程序将连接池用于 HTTP 和 JDBC 调用以实现弹性。但是使用和配置这两种类型的池是非常不同的。这复制了实现两者共有的弹性模式的复杂性——例如超时、重试、缓存/警报回退、断路和监控。

在我看来, Hystrix为 HTTP 和 JDBC 调用提供了配置和实现这些相同弹性模式的通用方法。

我的问题是:

  1. Hystrix 理论上可以完全替代现有的 HTTP 和 JDBC 连接池吗?
  2. 如果是这样,这样做的利弊是什么?

完全替换它们可以减少围绕这些连接池的复杂性 - 以及它们伴随的超时和验证查询属性等。但是我对 Hystrix 如何“保持活动” JDBC / HTTP 连接 - 从而避免昂贵的连接设置成本 - 没有委派给专门用于这些任务的现有图书馆。

对于上下文,我有一个 DropWizard 应用程序,它使用 Tomcat DBCP 作为其 JDBC 连接池,使用 Apache HttpClient 作为其 HTTP 连接池。

0 投票
1 回答
436 浏览

hystrix - 超时时需要清理的 Hystrix 命令

我有一个 Hystrix 命令,在超时时需要清理。我们目前处理这个问题的方法如下:

Hystrix 框架是否为此提供了另一种方式?

0 投票
1 回答
2250 浏览

spring - 使用 Spring Cloud Netflix 时覆盖 Hystrix 属性

我有一个通过 Spring Cloud 库使用 Netflix Hystrix 的 Spring Boot 应用程序,一切正常。

我想覆盖 Hystrix 的一些基本属性,例如hystrix.threadpool.default.coreSize和/或hystrix.threadpool.default.maxQueueSize。不幸的是,我找不到一些开箱即用的 Spring Boot 属性来执行此操作,那么在应用程序启动时我需要做些什么来设置这些属性?

这些属性是如何在 spring-cloud-starter-hystrix 模块中设置的?

0 投票
1 回答
625 浏览

promise - Hystrix:在 getFallBack() 中进行网络调用

我一直在玩 Netflix OSS Hystrix,现在我正在探索不同的配置和可能性,以将其包含在我的项目中。除其他外,我的应用程序需要在HystrixCommand.getFallBack()...中进行网络调用

现在,我读到最好不要在那里进行网络调用,而是提供一些通用答案(请参阅Hystrix Wiki),如果确实有必要这样做,应该使用HystrixCommandor HystrixObservableCommand

我的问题是,如果我使用我HystrixCommand应该调用它,例如,使用HystrixCommand.run()orHysrixCommand.queue()或其他选项?

另外,在我的日志中,我注意到getFallBack()可以有不同的调用线程(例如,Hystrix-Timer,我想这取决于谁中断了 run 方法)。在这里,我想知道HystrixCommand.run()从后备中调用 shell 会如何影响我的性能,因为调用线程将处于活动状态并被阻塞,直到该命令完成?

编辑:以新的眼光看待这个问题,我现在认为“通用答案”(上面提到的)可能是某种形式的Promiseie,CompletableFuture<T>在 Java 术语中。因此,从 中返回承诺HystrixCommand.run()将允许调用线程(Hystrix 内部)立即返回,从而释放它。但是现在我坚持实施这种行为。有任何想法吗?

非常感谢您的帮助!

0 投票
0 回答
503 浏览

jersey - Hystrix 仪表板不适用于 Jersey 端点

我有一个带有使用 Jersey/JAX-RS 注释实现的公共端点的 Spring Boot 应用程序。Hystrix Dashboard 使用@EnableHystrixDashboard 启用,HystrixMetricsStreamServlet 在“/hystrix.stream”下注册(如示例中所示)。

访问 .../hystrix.stream 时,指标数据可用于 HystrixCommands,但起始仪表板页面“/hystrix”为空,给出HTTP 404 状态代码

知道为什么泽西岛无法访问它吗?

如果同样使用 Spring WebMVC(不是 Jersey)实现,则仪表板页面可用。

我的pom.xml

  • 不包括 spring-webmvc 并取决于 jersey
  • 取决于 hystrix、事件流、仪表板、执行器

-

0 投票
1 回答
44196 浏览

spring-boot - 在 Spring-Boot 应用程序中使用 application.yaml 配置 hystrix 命令属性

我有同样的问题,我试图覆盖 application.yaml 中的 hystrix 属性。当我运行应用程序并使用 localhost:port/app-context/hystrix.stream 检查属性时,我得到了所有默认值。

这是我的 application.yaml 中的 hystrix 配置

这是我点击 url 时看到的内容 - 浏览器中的 localhost:port/app-context/hystrix.stream [这与 hystrix 仪表板使用的流 url 相同] -

问题在于 hystrix 命令和折叠器属性,其中线程池属性设置正确。我的@configuration类中有以下注释-

有人尝试在他们的 Spring-Boot 应用程序中使用 application.yaml 配置 hystrix 命令属性,可以帮忙吗?

0 投票
0 回答
298 浏览

spring-cloud - 如何只取出eureka ill服务应用实例以避免hystrix断路?

我正在我的本地机器上试用spring-cloud-samples,我开发了一个简单的 REST 服务,支持 eureka 和 hystrix。

我有一个前端应用程序,它通过 hystrix 命令方法(@HystrixCommand 注释方法)连接到服务,其中包含对 Feign 客户端的引用。

假装客户端

Hystrix 包装器

我已经启动了 Spring MVC ProductService 的两个实例。第一个按预期交付基于给定标识符的产品信息。另一方面,第二个总是抛出 RuntimeException 以模拟系统依赖失败:

在前端,我使用 hystrix 客户端获取产品信息,并且 ProductService 实例将以循环方式(由于功能区)方式调用。由于 ProductService 实例之一总是传递异常,在前端连续多次调用后,ProductService 电路将打开(即使 ProductService 实例之一可以成功处理请求)。

如何仅从 eureka 中删除有问题的 ProductService 实例,并保持其正常运行,以避免 ProductService 的 hystrix 断路?我认为需要更改 ProductService 的健康指标资源“/health”的功能,以便对系统依赖失败执行额外检查。

我偶然发现使用spring-boot-starter-actuator可以执行自定义健康检查,但这似乎无助于从 eureka 中取出服务实例。

0 投票
1 回答
2221 浏览

spring-cloud - 来自 hystrix 命令的日志错误

使用 @HystrixCommand 注释可以配置一个回退方法,以防方法失败。

为了记录(在中心类中)在使用 @HystrixCommand 注释的所有方法中引发的运行时异常,我应该怎么做?

我使用的是 spring-cloud-netflix 而不是 vanilla hystrix-javanica。我正在寻找我需要在我的应用程序中实现的类似于 org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler 类(用于 Spring 的 @Async)的东西。

在 hystrix-core 中,HystrixCommand 类有方法getFailedExecutionException()可以在后备方法中用于记录异常。有人可以指出我在使用 hystrix-javanica 时如何得到这个异常吗?

0 投票
1 回答
2386 浏览

java - 如何通过 JMX 暴露 Hystrix 的断路器状态

我一直在寻找有关如何在 JMX 上公开 Hystrix 的断路器状态的教程。我刚刚发现了一个使用hystrix-servo-metrics-publisher.

是否可以在 JMX 上公开断路器状态?