问题标签 [circuit-breaker]

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 回答
616 浏览

web-services - Akka Http 断路器

使用断路器模式时,是否可以将所有外部服务调用包装在传递给的方法中,.withCircuitBreaker()或者每个调用本身都应该传递给.withCircuitBreaker()?例如。

更新:如果是 Web 服务,是否可以在 中注册断路器,mainActorSystem或者我应该使用单独的circuitBreakerActorSystem

0 投票
1 回答
1690 浏览

apache-camel - 如何在 Apache Camel 中结合重试和断路器?

我想重试 3 次,然后将失败阈值增加到 1。当这个阈值达到 5 时,我想在 Apache Camel 中打开电路。

我知道 Camel 支持断路器,但是我找不到可以将重试与它结合使用的示例。

任何帮助是极大的赞赏。

提前致谢。

拉梅什。

0 投票
1 回答
1267 浏览

spring - 方法参数不匹配的 Spring Hystrix 单一后备

我想知道是否可以实现以下类似的东西,因为我有很多端点变体,并且每个端点都有一个带有匹配参数的后备方法非常混乱。或者,全局后备也可以。

0 投票
1 回答
179 浏览

nservicebus - 如何增加 NServiceBus 4.x TimeoutPersisterReceiver 断路器

如何增加 NServicebus 4.x 的 TimeoutPersisterReceiver 的时间跨度?

我们如何从容器中获取 TimeoutPersisterReceiver 对象并修改 SecondsToSleepBetweenPolls 值?投票次数是否有任何属性?

以下链接仅适用于5.x&6.x不适用于4.xhttp ://docs.particular.net/nservicebus/errors/critical-exception-for-timeout-outages

编辑:嗨,Marcin,谢谢。我查看了您提供的链接:如何配置 TimeoutPersisterReceiver.SecondsToSleepBetweenPolls

NServicebus 修复了 5.x,但没有修复 4.x。@JustABitOfCode 提到了配置 TimeoutPersisterReceiver。但我找不到任何关于如何从容器中获取该实例并设置它的链接。另外我的问题是,有没有办法控制断路器进行的民意调查次数?

正如我所提到的,我暂时对 4.x 感到震惊。任何帮助将不胜感激。

0 投票
1 回答
6085 浏览

c# - Polly 断路器模式 - 用于测试连接字符串

我正在尝试使用 Polly 测试连接字符串是否为空。如果为空,我想使用 CircuitBreaker 尝试 3 次,消息应该会在 Console 窗口中输出。

GetConnectionString 方法是:

为了对此进行测试,我在 App.config 中更改了连接字符串名称。

但是它似乎没有处理 NullReference 异常。

当我调试应用程序时 - 它打开 CircuitBreakerEngine.cs not found 并仅打印“对象引用未设置为对象的实例”。

预期:打印未设置为对象实例三次的对象引用和来自断路异常的消息

0 投票
2 回答
12565 浏览

c# - 如果发生异常,Polly 框架 CircuitBreakerAsync 不会重试

我正在使用 Polly 框架进行瞬态故障处理。对于同步操作,Polly 断路器策略工作正常,但是当我创建它的异步版本时,它不会重试执行。请建议:

异步方法

Polly 断路器异步策略:

执行 Polly 断路器策略:

AsyncDemo3(HelloWorld);

请帮助查找并解决问题。

0 投票
2 回答
4609 浏览

java - 增加 Hystrix 断路器超时?

我有一个 Hystrix 断路器的实现,并且在测试时我得到了一个 Hystrix 运行时异常,错误是 CircuitBreker 超时和回退失败。我需要增加 CircutBreaker 的超时时间吗?如果代码超时,它是否应该让断路器跳闸?

我的junit测试如下:

我的课程只是使用 CircuitBreaker 运行 web 获取/放置/等,以防万一发生故障。我的班级如下:

0 投票
0 回答
1510 浏览

spring-boot - 下游服务恢复后 Hystrix 电路未关闭

我正在玩 Josh Long 的bootiful-microservice 项目。(布里克斯顿子项目)

在预订服务上,我添加了一个简单的状态方法,它可以休眠一段可配置的时间来模拟负载:

sleepTime变量是从 Spring Config Server 中提取的

在预订客户端上,我在网关中添加了一个入口点:

我正在使用HystrixCommand

这一切都很好。

我将睡眠时间设置为 1500 毫秒,以便某些请求将高于 Hystrix 默认阈值(1000 毫秒)。

当我开始使用 API 时,由于超时,我遇到了一些失败。如果我击打的时间足够长(似乎可以工作 50 次),断路器触发并且电路打开:

Hystrix 仪表板

我的理解是,随着下游服务再次变得健康,Hystrix 将尝试路由 1 个呼叫并将其用作健康检查。如果调用成功,电路应再次关闭。

然而,这并没有发生在这里。即使将睡眠时间更改为较小的值(例如 500 毫秒),电路仍将保持打开状态。我的所有呼叫都没有路由到预订服务,并且每次呼叫都使用回退。我可以让电路再次关闭的唯一方法是重新启动预订客户端服务。

我错过了什么?Hystrix 有问题吗?还是与 Spring 集成?


更新

我做了进一步的测试,我可以确认电路将永远保持关闭,即使在睡眠减少之后也是如此。

但是,如果我在 Zuul 配置中使用路由,我会得到预期的行为。如果看到没有超时的请求,电路会自行关闭。

我注意到通过路由转发与在 Spring 中手动转发相比的另一个区别。如果我创建过滤器,我在客户端上的 /status/ 调用不会触发过滤器。当我设置路由时(例如 /foos/status => /status),它将触发过滤器并且 Hystrix 行为正常。

这是Spring中的错误吗?

0 投票
1 回答
885 浏览

spring-cloud - 带有断路器的spring cloud zuul静态路由

我已经为 Zuul 配置了到其他微服务的静态路由。有没有办法在调用其他服务时启用 CircuitBreaker?

0 投票
2 回答
278 浏览

c# - 如何对 DotNetCircuitBreaker 进行异步调用

我正在使用 DotNetCircuitBreaker 并尝试像这样调用异步方法

参数 1:无法从 System.Threading.Tasks.Task"int" 转换为 System.Func"System.Threading.Tasks.Task"

如何修复我的 calc 方法