如何决定是使用Rebus.CircuitBreaker还是二级重试?我觉得二级重试可以完成CircuitBreaker的工作,例如,如果我发现由网络引起的错误类型,我可以将消息返回到TimeoutManager,而不是错误队列。那么在什么情况下我们需要Rebus的断路器呢。感谢
断路器是一个非常固定的概念,因为它的目的是避免在出现错误时破坏资源,这可以用来避免在争用和高负载导致资源开始故障的情况下造成更大的伤害。
二级重试提供了更大的灵活性,因为您可以使用它们来编写您能想到的几乎任何类型的高级重试逻辑。您可能可以使用二级重试来实现自己的断路器,并且,正如您所建议的,您可以将它们与延迟消息结合使用,以实现更复杂的重试策略。