有两个数据库节点,互为主备(暂且称为sqlnode1和sqlnode2)。有两个系统A和B,还有一个数据交换服务。
系统A的订单支付后,需要通知系统B。通知是通过数据交换服务实现的。系统A支付完成,在提交事务之后,向数据交换服务发送支付成功消息,数据交换服务根据消息从数据库中获取出订单数据,组装成系统B需要的数据,然后发送到系统B中。
系统A支付成功 -> 保存数据到sqlnode1中 -> 提交事务 -> 向数据交换服务发送消息 -> 从sqlnode2中获取订单数据。
问题就在于在sqlnode1中的数据同步到sqlnode2之前,数据交换服务从sqlnode2中把数据取了出来。这就导致了数据交换服务拼装的是变更之前的数据。
暂时没有从网上找到类似事件的处理方式,求大神支招