我没有看到收件箱模式和发件箱模式之间的区别。
收件箱模式将消息保存在数据库中。发件箱模式也是如此,那么有什么区别呢?
其实这是一个很好的问题。
我们应该考虑一些差异。首先,我们有 3 种传递消息的方法:
发件箱模式和收件箱模式描述了“至少一次”策略。让我们看一下真实的例子,当你有 API-1、消息代理和 API-2 时,即两个带有消息代理的微服务。
这里有什么问题吗?如果实体将被保存到数据库,并且出于某种原因,但在发送事件之前,您的 api 将死亡,API-2 将不会收到有关该操作的通知,并且您的数据将不一致。
发件箱图案:
收件箱图案
收件箱模式情况略有不同,但非常相似
总结一下—— 发件箱模式 - 将事件存储到 API-one 的数据库中 收件箱模式 - 您将事件存储到 API-two 的数据库中
主要区别在于发件箱用于结果,收入用于处理传入消息