【问题标题】:Rebus Circuit Breaker Implementation?Rebus断路器实施?
【发布时间】:2020-09-16 01:42:11
【问题描述】:

我最近一直在与 Rebus 合作,到目前为止一切都很好。

当我们有数千或数十万条消息正在处理并且依赖服务(如数据库或 RabbitMQ)出现故障时,需要关注的一个方面。

在这种情况下,我们不希望错误队列中的所有消息。我想知道 Rebus 是否有任何内置的断路器机制?像我在 60 秒内达到 10% 的故障率阈值,并希望在一段时间内禁用端点,以防基础设施出现故障并需要恢复。

【问题讨论】:

    标签: rebus circuit-breaker


    【解决方案1】:

    伙计,这真是一个绝妙的主意!

    它甚至可以在不触及 Rebus 内部的情况下实现,只需将一个装饰器连接到 IErrorHandler,它会检测错误率,然后将工作人员的数量设置为 0 一段时间。

    如果您对此感兴趣,可以在 GitHub 上将其作为问题提出。 ?

    【讨论】:

    • 我将在 GitHub 上将其作为问题提出。 MassTransit 的断路器模式类似于我在问题中所说的,但总的来说,我喜欢 Rebus 的简单性,而不是 MassTransit 的许多复杂区域超载的麻烦
    • 根据您的回答在这里快速提问。我正在尝试为此编写自己的 IErrorHandler 实现。那是你的建议吗?如果是这样,我可以在 rebusConfigurer 的选项中注册或装饰它。但是,我仍然希望消息使用配置的默认 PoisonQueueErrorHandler 进入错误队列。但是,一旦我注册或装饰了 IErrorHandler 实例,我就会丢失消息,因为 PoisonQueueErrorHandler 最终没有被使用。有没有办法同时调用两个处理程序?
    【解决方案2】:

    好像有一个插件可用

    https://github.com/rebus-org/Rebus.CircuitBreaker

    免责声明

    我只是在寻找同样的东西,我与插件本身没有任何关系。所有学分归作者所有。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2021-10-24
      • 2013-10-29
      • 2015-12-08
      • 2015-12-12
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多