解码 | 25 分钟开发分布式架构的转账小程序

如今,转账场景深入在我们生活的方方面面,也有很多技术团队在独立开发转账的小程序。

本文将给大家对比常见的小程序和分布式小程序的优劣,最后借助 SOFAStack 的能力,提供 25 分钟实现稳定的分布式架构的转账小程序的 Demo。


背景

2017 年 12 月 ,蚂蚁金服发布自主研发的分布式中间件(Scalable Open Financial Architecture,以下简称 SOFA ),并提出金融机构进行业务突破和创新的关键是:行业 IT 架构从传统的集中式架构向分布式架构转型。


2018 年 4 月,蚂蚁金服 SOFA 启动开源计划,并开放多个组件,这一系列的动作受到大家的关注和支持,同时,SOFA 社区也日益壮大,除了积极参加开源社区的分享之外,目前已经在杭州、北京、深圳的 Meetup 与大家相见。


2018 年 9 月,杭州蚂蚁金服 ATEC(Ant Technology Exploration Conference),SOFA 再次与开发者们相约,联合支付宝小程序推出《 25 分钟开发分布式架构的转账小程序》的体验课程,大家可在杭州云栖小镇国际会展中心场馆 B 场馆- ATEC 开发者乐园 CodeLab 来现场动手实践,时间为 2018/9/19 - 9/22。

场景介绍

一个精简的转账业务,一般会包含几个部分:

  • 用户发起转账

  • 系统记录用户的支出记录

  • 将资金从 A 用户转 B 用户

  • 返回给用户“操作成功”提醒,并且定期会给用户发送一些日结或者月结的收支账单

这里涉及到账户、转账、账单三个功能模块。

小程序集中式后台架构

常见的集中式架构如下图所示,转账涉及的账户、转账、账单等功能模块都集中在一个后台系统中,所有的数据都在同一个数据库里面。在业务量不大的情况下,集中式后台系统设计简单,部署方便,没有太多复杂的场景。

但是在大业务量的情况下,集中式架构的缺点也一一体现,例如成本较高、系统容量有限、扩展能力受限、代码繁重、故障影响面大等等。


小程序分布式后台架构


在上图中,可以看到原来集中式的系统已经拆分为多个后台系统,原来的集中式数据库也已经拆分为两个数据库,原来进程内的系统交互也变成了进程间的系统交互。

分布式后台架构很好的解决了集中式架构的问题的同时,但是也带来了一些新的挑战。

例如:

  • 系统间的同步调用、异步调用

  • 分布式数据源的数据库访问

  • 分布式事务


我们来举个例子,假设转账业务的前端是小程序,其完整的流程图如下:

  • 用户扫描二维码进行登录,成功后可以查看当前的余额

  • 选取另一个用户进行转账,输入金额并提交,同时会做限额的校验

  • 转账应用记录流水明细

  • 转账应用调用账号应用,进行两个账号余额增减

  • 转账应用发送成功消息给用户


采用以上的方案,可能会面对一些问题,比如:

  • 如何保证转账应用跟账号应用之间的事务一致性?

  • 转账的明细库容量不够了如何动态水平扩容?

  • 数据如何由单库迁移到多库?如何保证消息发送的可靠性?等等


这时候,需要一套成熟的中间件来为用户解决分布式架构下的问题。业内有不少不错的中间件产品,比如开源的 Spring Cloud 、SOFAStack 框架等。

今天,我们现场体验一下「基于 SOFAStack 中间件的转账小程序」的特别之处

蚂蚁金融科技的 SOFAStack 中间件从蚂蚁内部演变发展而来,经历了数 10 年金融级业务的发展。


SOFAStack 可以帮忙用户快速构建健壮的系统:

  • 分布式事务 DTX 可以解决转账链路上 payment 跟 account 之间跨资源的分布式事务问题,业务代码几乎不用调整;

  • 数据访问代理 DBP 可以解决 payment 数据库容量的问题,用户像使用单库单表一样访问分库分表的数据访问代理 DBP 实例,并且可以跟分布式事务 DTX 集成使用;

  • 任务调度及消息队列可以解决账单系统(Bill)复杂的账单任务以及发送可靠的账单消息、支付成功消息给用户。

图中提到的 SOFAStack 产品如下,结合这些产品的能力,我们便能很好地解决普通的分布式小程序带来的问题:

  1. SOFABoot:基于 Spring Boot 的一套研发框架;

  2. 微服务

  • SOFARPC:一个高可扩展性、高性能、生产级的 Java RPC 框架;

  • 动态配置:动态配置是一个配置管理框架。它可以在分布式环境下、运行期动态管理应用集群配置参数,广泛用于业务参数配置、应急开关切换等场景;

  • 定时任务:定时任务服务旨在为业务系统提供统一通用的任务调度服务,提供定时任务的管理监控平台,减轻业务系统开发和后续线上运维的工作量;

消息队列:具备高可靠、高吞吐量、高可用、事务强一致性、可稳定支撑亿级数据洪峰的金融级消息中间件;

数据访问代理 DBP:专注于为金融级数据访问提供高性能、高可用、可扩展的轻量级解决方案;

分布式事务 DTX(FMT模式):在大规模分布式环境下,以优异的性能保障业务数据的一致性,支撑数亿级用户的资金操作。 广泛应用于交易、转账、保险理财等核心资金链路;

开始动手吧:

2018/9/19 - 9/22,蚂蚁金服将在杭州云栖大会暨蚂蚁 ATEC 科技大会期间打造蚂蚁开发者乐园,其中包含蚂蚁金融科技云+端一站式体验以及支付宝小程序挑战赛两大环节,SOFA 团队将在这里与你相约,我们更是准备了精美的礼品等待大家 ^_^

举办地点:杭州云栖小镇国际会展中心场馆 B 场馆 - ATEC 开发者乐园 CodeLab 区域


Demo 实现如下:



延伸阅读:

深度 | 为你解读 SOFA-DTX 分布式事务的设计演进路线上篇

深度 | 为你解读 SOFA-DTX 分布式事务的设计演进路线下篇


相关论坛推荐:数字金融架构转型专场

时间:9月21日下午13:30-16:30

在这场论坛上,我们即将习得如何打造安全、稳定、高效、敏捷的基础架构能力,打造下一代金融核心系统所涉及的关键技术和架构,相关话题包括高可用架构、资损防控、智能运维、容器云、分布式核心等。




长按关注,获取分布式架构干货

欢迎大家共同打造 SOFAStack https://github.com/alipay





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值