分布式事务相当于本地事务加上消息传递。先扣钱再加钱。牺牲了延迟性,保障数据最终一致。
消息的可靠存储:
-
Transactional outbox 本地一个数据库通过事务保障 begin transaction
- polling publiser 去拉mysql中的记录从而通过消息队列发送
- 改用canal订阅binlog再发送到mq。
消息的重复消费,使用幂等处理来解
- 版本号来解决
- 全局唯一ID加去重表
2PC二阶段提交
- 存在事务协调者和事务参与者
- 原文作者:nepp
- 原文链接:https://nepp-an.github.io/post/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。