暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
分布式事务的设计.pdf
115
7页
6次
2023-11-08
免费下载
分布式事务的设计
分布式事务的设计
公司有一项储值卡充值业务客户在微信公众号开通储值卡服务,通过微信支付往卡里面
值,充值成功后客户可收到消息通知,并进行消费。
看起来是一项很简单的业务最初我们储值卡团队的实现也确实很简单我们看看最初的实
现:
相信聪明的你一眼就能看出问题:
1. 压根没有考虑分布式事务一致性,比如第 12 步根本没有考虑卡系统充值失败的情
况该如何处理,而是默认其一定能成功;
2. 大部分的处理都是放在前端业务系统(除了这里的公众号系统,还有 POS 机系统,
POS 机是通过调公众号系统接口来实现的);
3. 4 步直接下单,第 5 步直接调微信支付,压根没有跟卡系统有任何通信:这里
默认用户的充值行为一定是合法的;
4. 在微信的支付回调中(第 10 步往后),是先处理一系列业务逻辑,最后才调充值
接口,这里也是默认卡充值一定能成功;
看到这里你可能会大呼开发人员是不是没长脑子?
实际情况是,这个版本的开发是几年前的事情了,那时候公司还是创业早期,第一目标是尽
快上线能用,而且客户量没有那么大,虽然中间也出现过一些数据不一致的情况,也都通过
人工处理了事了。
随着公司业务的发展,用户量越来越大,而且还要和第三方合作(储值卡作为一种支付方式
提供给第三方使用),问题出现得也越来越频繁,不得不将这块提上重构议程。
那么,针对上面提的几点问题,我们大体能想到如下重构项:
1. 将充值业务逻辑从前端系统剥离,做成单独的服务;
2. 在下单前,先调一下卡系统接口,检查用户的充值行为是否合法,避免后面不必要
的麻烦;
3. 在支付回调中,处理充值失败的场景;
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜