最近项目中需要通过消息中间件RocketMQ进行各系统间的数据同步,老系统作为数据发起的源头,由于业务的复杂性,为了减少对老代码的侵入,给部分需要发送增量的数据进行了拦截,具体处理方案如下:
1.由于是部分拦截,需要先添加自定义注解部分
2.增加一个Aop切面类,拦截需要处理的Dao接口参数
3.拿到需要发送增量消息的参数,监听事务成功后发送相关增量消息
总结:由于业务的零散与复杂性,所以选择直接通过切面来处理需要的数据,中间省略了相关数据处理逻辑。
考虑到事务间的嵌套与回滚,选择监听整个事务成功后再发送相关增量消息