Rebus HTTP Gateway如何确认消息传递

时间:2014-09-05 08:56:20

标签: rebus

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

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

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

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

提前致谢:)

1 个答案:

答案 0 :(得分:2)

它以的方式执行非常简单的“确认”,如果没有错误发生,则假定该消息已安全地传递到目标队列

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

如果您只需要处理每条消息一次很重要,那么您需要制作接收器idempotent - 但这通常是您在没有分布式事务的情况下进行消息传递的规则,因此它与没有分布式事务的情况有所不同没有涉及HTTP网关。