我在寻找卡夫卡在交易中的表现。我有一个oracle数据库插入操作运行在同一个事务中,如果事务回滚,它将回滚更改。卡夫卡生产者在交易回滚的情况下是如何表现的?
消息是回滚还是Kafka不支持回滚?
我知道只有在提交事务时,JMS消息才会被提交到队列。寻找类似的解决方案,如果它是支持的。
注意:生产者代码是使用spring引导编写的。
发布于 2022-03-03 15:38:01
你想要更新两个系统
将oracle database
这是一个挑战,因为您希望它是原子的,要么执行所有东西,要么什么都不执行,否则您的数据库和kafka之间就会有不一致的结果。
最简单的解决方案之一是使用发件箱模式:
假设您想要更新订单表,并将事件发送给kafka
)。
在这篇文章中,我将更详细地解释如何实现这个解决方案。
https://mirakl.tech/sending-kafka-message-in-a-transactional-way-34d6d19bb7b2
https://stackoverflow.com/questions/67631362
复制相似问题