gpt4 book ai didi

design-patterns - 微服务中需要事务发件箱模式

转载 作者:行者123 更新时间:2023-12-04 09:40:54 30 4
gpt4 key购买 nike

我看到了使用事务发件箱模式 ( https://microservices.io/patterns/data/transactional-outbox.html ) 的建议,用于在数据库发生某些更改后应将消息发布到代理的场景,因此它可以是“ACID”。我的问题是:为什么不像这样将消息发布内部交易?

try {
beginTransaction()
saveStuff()
publishMessage()
commitTransaction()
} catch() {
rollbackTransaction()
}

这样,只要消息发布失败,事务就会被回滚。我只看到一个问题:您可能不想在消息发布失败时回滚事务,稍后再试。这种方法还有其他问题吗?

最佳答案

publishMessage 可以工作(消息已发送)但 commitTransaction 可能会失败(例如,与数据库的连接丢失或应用程序在发送消息后和调用 commit 之前崩溃)

关于design-patterns - 微服务中需要事务发件箱模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62334856/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com