微服务中更新数据库后立即发布事件到消息代理的做法,一旦网络失败就会让已提交的事件永久丢失;若事件先发成功而数据库回滚,下游又会收到幻影事件。事务性发件箱模式要求把事件存入数据库的发件箱表,与业务数据在同一事务内提交,然后由独立进程负责转发到 RabbitMQ 或 Kafka。 这种双写漏洞在实际生产环……

阅读全文