在 MSMQ 上使用 MassTransit 可以自动支持精确一次传递(例如,当事件存储发布两次事件时)和按顺序传递(例如,当两个节点同时写入/发布事件时,节点 A 可能存储事件#2,然后节点 B 读取事件 #2,节点 B 存储事件 #3,节点 B 发布事件 #3,节点 A 发布事件 #2 - 典型的竞争条件)?
如果 MassTransit 不支持开箱即用(我目前假设),那么使用 MassTransit/MSMQ 实现这两个要求的最佳/常用方法是什么。
在 MSMQ 上使用 MassTransit 可以自动支持精确一次传递(例如,当事件存储发布两次事件时)和按顺序传递(例如,当两个节点同时写入/发布事件时,节点 A 可能存储事件#2,然后节点 B 读取事件 #2,节点 B 存储事件 #3,节点 B 发布事件 #3,节点 A 发布事件 #2 - 典型的竞争条件)?
如果 MassTransit 不支持开箱即用(我目前假设),那么使用 MassTransit/MSMQ 实现这两个要求的最佳/常用方法是什么。
MassTransit 遵循Actor 模型不保证消息传递的顺序。然而,它确实有Sagas来帮助任意处理订单。您也可以考虑将您的消费者实现为idempotent。