2

我想问一下 Rebus HTTP Gateway 如何确认消息传递,所以当 OutboundService 发送消息时它如何知道它可以提交或回滚事务。

直观的答案是 HTTP 响应承认它但是查看代码

https://github.com/rebus-org/Rebus/blob/5fef6b400feaf569e0d6517ad9ee3f6da2f31820/src/Rebus.HttpGateway/Outbound/OutboundService.cs#L139

阅读回复后似乎没有采取任何行动。

提前致谢 :)

4

1 回答 1

2

它做了一个非常简单的“确认”,如果没有发生错误,则假定消息已安全地传递到目标队列

这意味着无处不在的至少一次交付保证也适用于网关,尽管两次接收相同消息的风险当然会大大增加。

如果对您来说只处理一次消息很重要,您需要使您的接收者具有幂等性——但这通常是您在没有分布式事务的情况下进行消息传递时的规则,因此它与不涉及 HTTP 网关的场景没有什么不同。

于 2014-09-07T12:31:45.087 回答