如何解决使用微服务发件箱模式,我可以将事件写入磁盘而不是数据库吗?
我最近一直在阅读有关在微服务中处理事件的文章。有大量参考发件箱模式的材料可以同时处理数据库更新和事件发布:
https://microservices.io/patterns/data/transactional-outbox.html
在我看来,简单地写入磁盘而不是表就足够了(甚至可能更好地扩展)。出于某种原因,我似乎找不到任何关于写入磁盘的资源,只能写入表。这种模式是否有问题,或者我只是没有使用正确的关键字来找到它?
解决方法
这里的重点是,将实体写入订单表和将事件/消息写入发件箱表的操作都是在一个中进行的>transaction(根据定义是原子的)。
在文件系统上这样做非常困难(如果不是不可能的话):如果您将实体写入一个文件并将事件/消息写入另一个文件,这将不是原子操作。将两者写入同一个文件很糟糕(因为消息中继过程需要只读取事件),而且您可能仍然无法保证这是原子性的。
除此之外,行为取决于您使用的文件系统类型。
进一步阅读:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。