作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
实现 outbox pattern 的常用方法是将消息有效负载存储在发件箱表中,并有一个单独的进程( 消息中继 )查询待处理的消息并将它们发布到消息代理中,在我的例子中是 Kafka。
发件箱表的状态可能如下所示。
OUTBOX TABLE
---------------------------------
|ID | STATE | TOPIC | PAYLOAD |
---------------------------------
| 1 | PROCESSED | user |
| 2 | PENDING | user |
| 3 | PENDING | billing |
----------------------------------
@Scheduled
) 查找 PENDING 记录,将它们发布到 Kafka 并将记录更新为 PROCESSED 状态。
最佳答案
为了防止第一个问题,您必须使用数据库锁定。
SELECT * FROM outbox WHERE id = 1 FOR UPDATE
关于apache-kafka - 发件箱模式 - 我们如何防止消息中继过程生成重复的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542780/
我是一名优秀的程序员,十分优秀!