分布式事务解决方案RabbitMQ消息中间件,异步消息处理

分布式事务一直是集群环境和分布式架构的一个业界难点,就我目前已知的技术框架都没有完美的解决法案,本案例也只是一个模板类型的场景。

场景:类似外卖下单,外卖员接单,下单server和运单server是分布式部署的。
解决方案:rabbitMQ异步消息通知

总体来说我认为分布式事务的痛点就是在与两个server的事务需要保证一直性,server_A失败了server_B也要做失败处理,server_A成功但是server_B失败那么server_A也要做相应的处理。
在两个server的通信方面也可以采用http的方式,总之只要能做到两个server能够通信就好,一般会采用MQ消息中间件的方式。目前市面上的MQ消息中间件有很多RocketMQ,Kafka,RabbitMQ,这里采用RabbitMQ,没有什么特殊的理由,只是RabbitMQ集成spring比较简单。

下面是整个demo的流程图:
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第1张图片
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第2张图片
创建订单
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第3张图片
配置RabbitMQ
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第4张图片
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第5张图片
运单系统消费消息
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第6张图片
分布式事务解决方案RabbitMQ消息中间件,异步消息处理_第7张图片
此demo已上传到github 连接:https://github.com/cmw1085215666/RabbitMQ-test.git

你可能感兴趣的:(java,spring,MQ消息中间件)