首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MassTransit CircuitBreaker

MassTransit CircuitBreaker
EN

Stack Overflow用户
提问于 2017-06-14 22:54:58
回答 1查看 758关注 0票数 2

在RabbitMq中使用CircuitBreaker时,如下所示:

代码语言:javascript
复制
sbc.ReceiveEndpoint(host, "IDocumentImported_Warehouses.Nls", ep => {
    ep.Consumer(() => _container.Resolve<DocumentConsumer>());
        ep.PrefetchCount = 1;

        ep.UseCircuitBreaker(cb => {
            cb.ResetInterval = TimeSpan.FromSeconds(10);
            cb.ActiveThreshold = 1;
            cb.TrackingPeriod = TimeSpan.FromSeconds(10);
        });
    });
});

DocumentConsumer不再正确地接收消息,但是MassTransit仍然会使用来自RabbitMq的所有消息,并将它们放入错误队列中。这是预期的行为吗?文档没有涵盖太多内容。

EN

回答 1

Stack Overflow用户

发布于 2017-06-17 01:11:28

我认为我们不能仅仅停止接收端点。断路器只是一个中间件,如果你的消费者崩溃超过阈值,它就会主动失效。

断路器的含义是允许失败的消费者背后的基础设施恢复,而不会收到任何可能使其永远超载的请求。

您可以随时使用Fault<DocumentMessage>并重新发布出错的消息。

顺便说一句,大多数容器适配器支持像这样配置消费者:

代码语言:javascript
复制
ep.Consumer<DocumentConsumer>(_container);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44548214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档