处理微服务中的执行顺序问题

时间:2021-03-04 10:52:01

标签: microservices

据我所知,如果我们想同步执行事件 - 最佳解决方案是为事件/记录分配某种版本字段,并在服务以正确的顺序获取它时执行它。

假设我们有一个名为 User 的 mongo 集合

我们刚刚收到两个事件:

updateUser { name: 'edited', version:1 }
updateUser { name: 'edited2', version: 2}

当我们的用户服务调度这些事件时,逻辑记录版本为:1 将首先被其他服务处理

但我想知道的是 - 会发生什么,在我们处理这些事件之前,事件总线服务由于某种疯狂的原因被杀死,或者我们不小心删除了它(在开发环境 ofc 中)。

因为当数据在事件总线内被擦除时,下一个 updateUser 事件将是 version: 3,所有其他服务都将停止处理,因为它们只有版本 0 的记录并等待版本 1。

我是否必须手动更新数据库中的版本,或者是否有任何通用的设计模式来处理类似的并发问题?

0 个答案:

没有答案
相关问题