支付业务系统在对接第三方支付渠道之后发现还有对接几个系统来做业务操作,在实现业务操作时,需要对充值后的结果进行处理、如对接SMS系统充值,对接BOSS系统订阅等操作,使用分布式微服务概念方案实现此需求。
①第三方系统如支付宝、财付通、翼支付、银联等渠道
②微服务抽离,将订单服务、第三方支付渠道、本地充值系统、BOSS订阅系统抽离成微服务。
③三种微服务既能串行又能并行,支持幂等;使用定时循环和重试机制替代消息队列实现事务驱动,保证事务一致性。
④优化微服务对接,满足不同业务场景。
结合实际情况考虑,发现在原有框架中加入消息队列MQ会让系统变重,增加开发成本和维护成本。在实现中使用DB+redis+DelayQueue或者spring-retry框架来实现事务驱动架构,效果符合预期。
在实际调试中发现,分布式事务想要保持关系型数据库中的ACID的效果成本确实是高,每个环节都需要考虑周全。增加开发量。