Airbnb Blog- 分布式支付系统中交易完整性的测量

      这篇文章 Measuring Transactional Integrity in Airbnb’s Distributed Payment Ecosystem   是出自 Airbnb Blog。

      由于Airbnb的全球品牌, 其支付生态系统也异常复杂,目前支持190多个国家和全球40种货币, Airbnb与少数网关以及十多个支付机构对接,实现全球支付的覆盖。但是对接的系统中成熟度不通, 对接模式不通, 清算方式不通,而且由于其业务模式要求, 对于一笔付款需要其拆分成两笔交易, 一笔是旅行者支付到平台, 另一个笔是平台支付给房东。 在旅行者支付过程中还会涉及更改, 存款, 分期, 增值税等相对负责的交易, 在通过银行给房主付款过程中由于大多数银行采取批量模式,使得清算过程异常艰辛和漫长。 

       在此情况下Airbnb打造了自己新的支付网关

       参考现有支付平台以及银行系统方式,新的支付网关提供商户,对账报表和流水。 但是传统的工具对账并不充分。尤其是对一些历史交易,比如撤销授权, 虽然不涉及资金但是由于是跨天交易,所以也会影响我们对账交易的范围, 数据量的增加, 从而影响系统性能。

        Airbnb这里采用 Hive , Hadoop, HDFS, Airflow, S3 系列工具包, Hive提供类似SQL的界面查询数据,可以大规模的执行map-and-reduce作业。 Hadoop提供可扩展性, 适用于大型不断增长的数据集之间比较, HDFS使我们能够定期快照事务完整性, S3可以做为经济性的数据存储。Airflow是Airbnb自己开发调度工具, 用于协调各个计算步骤从而生产相关报告。 

        除了保障性机制外, 其还有对应的监控机制主要是通过Druid获取香瓜事务数据, Superset生成自动报告, 通过灵活配置异常检测算法, 能够支持email/slack通知。

       交易完整性分析帮助识别调整问题 并有助对系统参数进行微调。 通过以上辅助工具的在保障完整性使得财务报告准确简化运营, 深度学习分析帮助轻松监控分析问题并进行报警 。 

        未来的一些展望, 针对自动重试, 幂等性(idempotence guarantee )事务跟踪进行了一些探讨。

        由于本身工作原因也接触了银行收单方面的工作,接触过银行收单系统, 清算机构,第三方支付系统,在银联出现之前, 普通商户银行卡支付支付要支持多家银行,是需要分别对接各家银行的, 后来出现了银联系统, 我理解就是文中的网关,对于接触过的一些商户对于如果需要支持银行的特殊的交易如分期, 积分, 商户还是要直接对接某一个银行, 而要做跨行,由对接银行链接银联实现跨行,再后来出现了 微信支付, 支付宝支付,其实还是由银行或第三方/第四方支付机构做了这个网关的工作。 随着不断的发展还会出现新的支付方式, 新的网关,必然使得支付系统会越来越复杂。  网关是个不错的选择, 真正能做到网关级别的都是相当多的资源, 当然也会从中获取相应的利益。  前一阵facebook推出的 Libra或许是一个新的解决方案。

  

Be First to Comment

发表回复