项目的话是 springboot+springcloud 支付系统中,微信 /支付宝在支付成功后,会通知到 notifyurl,在回调方法里把支付的结果发条消息到 MQ 里,订单系统去监听,然后修改订单状态。 那么如果要增加用户积分、发货啊这些后续操作的话,是不是需要订单系统发送消息,让积分系统、物流系统去监听来处理各自的业务?或者是有什么其他好的办法么?
1
QZFCANBA OP 还是用 feign 在订单系统里,去调用其他的服务来完成,这个方案是不是不大好
|
2
RedBeanIce 2020-07-02 13:46:55 +08:00
分布式调用吗。。。emmmmm
|
3
gz911122 2020-07-02 13:50:14 +08:00
增加用户积分、发货这些服务自己去订阅消息..
支付系统支付成功后写消息就完事了. 别走远程调用. 后期需要订阅这个事件的部门 /团队可能会很多, 让他们自己订阅消费去吧.. |
4
kop1989 2020-07-02 13:51:27 +08:00
如果三个微服务分别去监听,如果某个业务出现异常,如何保证数据是平的?
比如积分系统报错没积上,但是订单系统和物流系统正常响应了。怎么再去修正补录积分? |
5
QZFCANBA OP @gz911122 直接在支付系统里发吗 ?还是麻烦点,订单系统监听消息后,修改好订单状态,再从订单系统里发消息到 MQ
|
7
gz911122 2020-07-02 14:40:28 +08:00
@QZFCANBA
直接支付系统发啊. 细节一些就是, 支付和订单状态流转是一个服务, 这样方便直接本地事务. 规避了一堆分布式事务的破事,. 具体的订单查询啊 统计, 可以抽取个订单服务出来, 但是这个订单服务是不涉及订单状态流转的. |