【问题标题】:With the microservices outbox pattern, can I write events to disk instead of a database?使用微服务发件箱模式,我可以将事件写入磁盘而不是数据库吗?
【发布时间】:2021-05-31 21:16:50
【问题描述】:

我最近一直在阅读有关在微服务中处理事件的内容。有大量材料引用发件箱模式来同时处理数据库更新和事件发布:

https://microservices.io/patterns/data/transactional-outbox.html

在我看来,简单地写入磁盘而不是表就足够了(甚至可能更好地扩展)。出于某种原因,我似乎找不到任何关于写入磁盘的资源,只写入表。这种模式有问题,还是我没有使用正确的关键字来找到它?

【问题讨论】:

    标签: architecture event-handling microservices


    【解决方案1】:

    这里的重点是,将实体写入订单表和将事件/消息写入发件箱表的操作都在一个transaction(根据定义是原子的)。

    这在文件系统上是非常困难的(如果不是不可能的话):如果您将实体写入一个文件并将事件/消息写入另一个文件,这将不是原子操作。将两者写入同一个文件是不好的(因为消息中继过程只需要读取事件),您可能仍然无法保证这是原子的。

    除此之外,行为取决于您使用的文件系统的类型。

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 2020-07-04
      • 2023-04-01
      • 2010-09-23
      相关资源
      最近更新 更多