本地消息表是一种确保分布式事务最终一致性的方法。
它的工作原理是:
- 在执行本地事务的同时,将需要异步执行的远程服务调用相关信息存储在同一个本地数据库的消息表中。
- 本地事务和消息表的写入操作在同一个数据库事务中完成,这样可以保证要么都成功,要么都失败,从而保证了数据的一致性。
- 本地事务提交后,一个独立的消息发布程序会定期扫描消息表,对于未处理的消息,发布到消息队列或直接调用远程服务。
- 远程服务处理完成后,消息会被标记为已处理,从而确保每条消息只被处理一次。
本地消息表是 ebay 公司提出的事务解决方案,它的核心原理是将需要分布式处理的任务通过消息日志的方式来异步执行。
消息日志可以存储到本地文件、数据库或消息队列,再通过业务规则或人工发起重试。
本地消息表基于 BASE 理论,实现数据的最终一致性,实现过程中需要注意幂等性原则。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END