基于activemq实现两个数据库最终一致性方案

spring项目中可以直接使用的代码:https://github.com/dengjili/activemq-2x

方案

基于activemq实现两个数据库最终一致性方案

  1. 阶段一,A中心完成数据库操作,同时往事件表里面插入一条数据,状态为待处理
  2. 阶段二,通过定制任务扫描A中心对应待处理的数据,都扫描到符合条件的数据,则发送消息到activemq消息中间件
  3. 阶段三,订阅了该消息的消费者接受数据,B中先将接收到的数据插入到事件表里,状态为待处理,心操作完数据库,更新事件表里面的状态,改为已完成
  4. 阶段四,通过定制任务扫描B中心对应已完成的数据,都扫描到符合条件的数据,则发送消息到activemq消息中间件
  5. 阶段五,订阅了该消息的消费者接受数据,A中将更新事件表里面的状态,改为已完成

实现落地

该操作比较简单,根据以前教程可完成操作,这里只给出解决思路

  1. 搭建两个ssm工程
  2. 使用activemq中间件与spring的整合,使用消息中间件
  3. 使用spring里面的定时任务调度