基于activemq实现两个数据库最终一致性方案
spring项目中可以直接使用的代码:https://github.com/dengjili/activemq-2x
方案
- 阶段一,A中心完成数据库操作,同时往事件表里面插入一条数据,状态为待处理
- 阶段二,通过定制任务扫描A中心对应待处理的数据,都扫描到符合条件的数据,则发送消息到activemq消息中间件
- 阶段三,订阅了该消息的消费者接受数据,B中先将接收到的数据插入到事件表里,
状态为待处理
,心操作完数据库,更新事件表里面的状态,改为已完成
- 阶段四,通过定制任务扫描B中心对应已完成的数据,都扫描到符合条件的数据,则发送消息到activemq消息中间件
- 阶段五,订阅了该消息的消费者接受数据,A中将更新事件表里面的状态,改为
已完成
实现落地
该操作比较简单,根据以前教程可完成操作,这里只给出解决思路
- 搭建两个ssm工程
- 使用activemq中间件与spring的整合,使用消息中间件
- 使用spring里面的定时任务调度