【发布时间】:2021-09-17 15:13:42
【问题描述】:
我们已将微服务设置为使用 rabbitmq 队列来处理任何即将到来的数据。
所以,我们有 service A、service B、service C 和 service D。
当请求向service A 创建用户时,它会创建一个用户并将事件推送到newUserIsCreated 队列。
现在,service B 和 service C 需要为新添加的用户更新他们的数据库。
问题:
如果在任何service B 和service C 中创建用户失败怎么办。
可能的失败情况可能是验证失败,或者 service B 和 service C 已关闭。
如果service D 尝试访问同一个用户,也会出现问题。
service B 和 service C 会回应什么?因为到那时他们将没有新创建的用户。
总结一下,
如何处理这些服务之间的验证失败或任何类型的失败?
如果需要实时同步怎么办? (队列可能需要一些时间来处理)
【问题讨论】:
-
我认为对于您的用例,您应该有另一个
service-x而不是 rabbitmq回滚操作。
标签: architecture rabbitmq microservices devops eventual-consistency