顺序
在京迈团队工作了一年多,回顾了今年的工作,现在是总结我们京迈交易平台的时候了。京迈交易平台从无到有,从0到1经历了什么?让我们跟随作者来看看交易平台的系统演变,以及如何稳定地提供外部支付能力。
文字
京迈交易平台是一个具有内部系统交易能力的支付平台。它包括订购、付款和结算等核心功能。其次,它涉及发票和优惠券等其他业务。我们致力于建设一个稳定、高效、发达的交易平台。接下来,作者将从0到1介绍我们的交易平台。
1、插入式市场
为了提高竞买的开放性,从服务商的进入、服务审查、审查和发布、订单执行、服务商的订单查询等方面打造一个闭环交易生态系统,在设计之初,我们搭建了竞买插件市场,为服务商和商户提供了一个交易桥梁,实现了PC版和手机版的插件市场。我们当时没有把整个交易平台的概念放进市场。下图是整个交易生态系统的功能架构:
接下来,随着我们业务的发展,有新的服务提供商进入插件市场和我们自己的产品发布。此时,我们的系统显得过于臃肿,业务复杂,导致系统之间的复杂交互。因此,为了更好地支持业务,使系统更加稳定,易于扩展,支付交易能力将得到提高脱钩出来吧,我们决定建立一个竞买交易平台。
2、交易平台
由于接入系统众多,业务需求非常复杂,对系统稳定性和可扩展性的要求非常高,因此事务
平台采用基于组件的设计,系统分为五个核心组件,即交易网关、结算页面、订单中心、支付中心和补偿机制,满足业务需求。
如何设计和扩展高效稳定的交易平台是关键。
组件化
首先,通过交易平台的组件设计,实现了系统功能的重用和自由组合,实现了不同的服务。例如,交易平台目前支持两种接入方式,以满足不同接入系统的接入要求。
1.交易网关->;结算页面->;订单中心->;支付中心
2.交易网关->;订单中心->;支付中心
引导路由
由于系统业务的复杂性,商户进入结算页面显示哪种支付方式的逻辑非常复杂,随着业务的发展,未来判断的逻辑更加复杂。大量的if-else语句让我们非常痛苦,一种新的情况变得异常复杂。因此,我们设计了一个引导路径,将影响支付方式的条件抽象为一个路由规则。每个路由规则都可以自定义并可插入。然后根据每个路由规则计算出付款方式的交集,得到最终的付款方式并输出到结算页面。
顺序状态机
对于一个交易系统来说,订单状态的流动是其核心。为了应对日益增多的订单状态和日益复杂的状态流,我们设计了订单状态机,并在设计模式中采用状态模式来实现订单状态的统一管理。为了扩展订单状态,我们只需要添加新的状态类和行为。
补偿机制
对于交易系统而言,支付成功率代表了系统的稳定性。订单能否及时完成以及后续性能对用户来说非常重要。由于不可避免的网络抖动和系统间接口不稳定,这将导致订单卡,这是用户无法接受的。针对这种异常情况,设计了相应的补偿机制,及时修复异常数据,使订单状态继续向下流动;此外,每个重要的支付和结算步骤都将记录日志,以便于跟踪和恢复有问题的订单。
在线支付:对账单进行反检查,查看预定任务。
扣款:推式生成结算单失败后,自制、自消MQ重试。
3、经验与总结
一步步,整个交易平台走过了许多深坑,遇到了许多问题。在解决问题的同时,它也得到了很大的发展,并获得了一些小的收获:
其核心思想是,系统必须不断地解耦和分裂。
尽量使系统组件化,或考虑在系统设计中重复使用,不要反复制造轮子。
做好系统监控工作。系统出现问题是正常的。如何快速定位和解决问题是关键。
2018年,我们将对系统进行重大升级。我们期待下一次的分享,这将带给你更多的干货,一起讨论和学习。
免责声明:转载自互联网,不用于商业宣传。版权归原作者所有,侵权和删除
最新评论