php - 微服务提现问题
本文介绍了php - 微服务提现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现有两个微服务:
-
用户服务.
用户数据字段
uid
allow_withdraw (1: 允许提现,0:禁止提现)
-
财务服务
财务系统数据字段
account (对应 用户.uid)
amount (余额)
现在提现功能,需要先判断 allow_withdraw,再判断余额是不是足够。
在 users-service
中加一个节点 /users/withdraw
执行的时候,
会先判断 allow_withdraw 状态,
再通过 HTTP 请求 finance-service
中的 /finance/amount
得到余额
再判断一下余额是否足够(问题就在这里,这里的判断是无法保证的)
有什么好的实现思路呢?
解决方案
finance-service 里应该有针对 amount 的 CRUD 操作,用户的提现应该放在 finance-service 里,users-service 里只提供 allow_withdraw 便可。
调用 finance-service 里的 withdraw 时,向 users-service 询问是否 allow_withdraw ,如果可以,在事务中对 amount 进行操作,并提交;如果失败,回滚,处理之。
好多的提现,只有一个提示,提现请求已提交,然后通过异步消息告诉你是否提现成功。
这篇关于php - 微服务提现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文