php - 微服务提现问题

查看:141
本文介绍了php - 微服务提现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

现有两个微服务:

  1. 用户服务.

    用户数据字段

    uid

    allow_withdraw (1: 允许提现,0:禁止提现)

  2. 财务服务

    财务系统数据字段

    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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆