BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

周恒:付钱拉交易系统架构演进与思考
录制于:

| 受访者 周恒 关注 0 他的粉丝 作者 QCon  他的粉丝 发布于 2017年11月21日 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!
11:23

个人简介 周恒, 付钱拉高级架构师,付钱拉高级架构师,服务于金融和互联网行业多年,对互联网金融技术实践有丰富的经验。负责高并发高可用金融框架,分布式爬虫框架的设计和研发工作。专注在稳定的性能的基础上,不断降低开发难度和风险,提高工作效率。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

2. 首先请您介绍一下自己,在付钱拉负责哪些工作?

周恒:我是2015年加入付钱拉的,我是担任高级架构师职务,这个职务是比较虚的,但是我的主要的工作职责是负责开发和维护我们现在这套支付框架,另外基于这套框架进行一个前瞻性的工作,工作内容就是我会去定期的去收集一些我们业务人员同时的一些需求,包括他们一些工作中遇到的难点,包括使用框架中遇到的问题,包括汇总,去尝试性的去进行一些预演我们新的框架,保证我们当前这个运行生产的框架,一个个的稳定,另外还会去针对他们一些工作中的难点,然后去研发一些维护性的系统和工具,比如说日志的归集,搜索,还有一些报警的买点,另外还有短信服务,也是我这边的。除此之外呢,我还负责一个专门的业务团队,和这个业务团队主要负责去收集就是用户的一些征信信息提供给一些厂商。

   

3. 付钱拉目前主要包含哪些业务,目前发展的情况如何?

周恒:付钱拉是以聚合支付起搏的,我想这个大家都会知道,但是经过我们2.0品牌升级以后,慢慢的我们付钱拉,不仅去提供了一个聚合支付,更多的还提供了比如资金管理,还有这种现金楼盘,就是企业级的一些应用服务。另外还有这种资金托管,还有投资理财,等等,涉及到这种整个经济领域的方方面面。

   

4. 那付钱拉目前主要的竞争对手有哪些呢,您能够介绍一下相对于竞争对手有哪些有优势吗?

周恒:对于竞争对手,我是这样理解的,付钱拉以聚合支付为核心,外围会涉及到一些其他的一些辅助的金融系统,就刚过说到了,资金管理这些系统,付钱拉相对而言,这种传统的这种聚合支付,就第四方,聚合支付这种厂商来说,它会多一些额外的一些金融的服务,像这种资金托管,帐户解决方案,供应链金融,这些是他们所没有的。另外呢,对于这种传统的这种提供这种金融服务的公司,我们又多了一个金融的入口,多了一种聚合支付,所以从一定意义上讲,付钱拉是没有一个相对意义上的竞争对手,它会有一些独特的特点在那里面。

   

5. 那你这次在大会上分享了一个架构的加法和减法,您能介绍一下付钱拉的金融系统经历了哪些演变,每一次是哪些原因做出这些演变的?

周恒:最初的架构很简单,付钱拉算上第一次架构,它是开发了四个版本,相当于是有三个迭代的过程,第一次这个版本很简单,这个的变革原因呢,就是因为我们在业务在增长,我们原来的架构可能过于简单,不太适合于我们现在的系统,我们进行一些通过技术上提高它一些性能,主要对数据库的一些优化,然后比如说对增加了一些缓存,增加,包括我们JM内部的缓存,还有外部的缓存,另外就是把我们的业务线程,有些业务线程是单独分配的一个线程尺,这样就提高我们的机器的使用效率,但是这个改版,你发现的问题就是会造成我们现在系统的这种过于复杂,另外就是不利于去扩展,我们基于这套系统又进行了一个3.0的重沟,这个重构主要的表现的核心,一个是业务会更加清晰,我们模块化会非常清晰,另外就是服务化,我们原来在一个项目里运行的,然后拆成了各个服务,服务化的好处就是可以支持针对某一个服务进行扩展,我这个服务性能不行,我只要把这个服务进行扩展就可以解决这个服务的难点,针对这些特点,我们就是去做了一个3.0,除此之外3.0也支持了灰度发布,发现对于我们这种互联网金融企业安全很重要,如果我们系统没有经过一个生产的验证是很难说保证,就是稳定的运行,所以灰度发布的引入,也就是决定了我们可以更加平稳的进行一个上线,放心的进行上线,这些点发现还是有问题,就没有,还是没满足不了我们这个业务开发人员,我们又进行了4.0的一个研发,4.0主要就是把我们原来这种服务化链式结构,去改变了一种新型结构,这种新型结构的好处,就是我通过我的这个配置可以进行一个服务调度,原来需要业务人员去自己写代码,决定我这个服务是从A到B到C,现在是由我们的配置中心直接决定了整个流程是从A到B到C,我可以通过配置中心去完整的看到我的业务的请求流程,而不用像以前一样,还去看我的文档,知道我们当初业务设计是什么样的,对于业务人员我通过代码就可以了解我们的业务,不用通过我们的业务文档,这是一方面提升。另外,就是针对我们开发人员,运维时间过长,包括看日志麻烦这些东西,我们在外围增加了一些辅助系统,日志搜索,还有运维报警,这些指标,制订,这是付钱拉4.0的一些优化,目前这个阶段是在收尾的阶段。

   

6. 那就来您这个演讲来说,加法好理解,如果在你们这套系统演变的过程中,如何体现出这个减法呢?

周恒:减法是这样的理解的,最初我定这个主题时候,加法减法,就像您一样,我的一个朋友应是这样说的,都说加法容易减法难,你到底怎么减法?你直接告诉我减法好了,不用跟我讲加法,这个是这样理解的,一个系统架构的变化不仅需要加,还需要减,关键是我在哪里加,哪里减,这个非常关键,对于这种减法的问题,实际上我要,我的架构设计目的是为了能够保证业务的正常运行,能够给我们的开发人员去提供一个很好使用的工具,我们要减是减在哪里?是减负给我们的开发人员,减少它的工作量,让它更少的去关注于我们技术的细节,因为这个技术细节很大程度上会导致它的工作强度会更高,另外它出错几率会变大,我们减的是开发人员的一个开发难度,屏蔽的是一些技术细节,从而让我们的开发人员更关注业务,这个是我减法中需要表达的含义。

   

7. 付钱拉目前,您刚才提到了付钱拉的金融系统经过服务化的改造,付钱拉目前大概包括多少个服务?

周恒:付钱拉服务是这样,是依据业务模型来定制的,大概12个服务,但是这是属于我们业务内部的调用的服务,这12个服务呢,实际上是大概分在了五台机器上。

   

8. 那对于金融系统,您所接触到的都涉及到哪些的监管规定,如果从架构上来说,如何满足这些监管要求?

周恒:付钱拉一直以来,它的所有业务都是在国家法律法规的规定下进行的,没有严格意义上说,付钱拉受国家哪些法律的一些监管,现在唯一就是去年央行出的一个条例,对第四方支付公司不允许做二清,付钱拉在设计之初的时候本身也没有考虑说要去做用户的二清这方面的工作,付钱拉有一个服务叫资金托管,资金托管,这个服务为什么要考虑这个服务呢?因为我们发现很多P2P公司,国家要求P2P公司的资金不允许流入自己的池子,它需要交到银行去托管,我们做这个服务是为了帮助这些P2P公司,去实现避免国家监管导致他们业务进行不下去,提供一些这样的一个服务,付钱拉有时候会考虑其他金融行业有哪些风险点,帮助他们避免,因为监管导致业务进行不下去的。

   

9. 那你们的系统目前的瓶颈在哪里,架构下一步的打算如何演进?

周恒:系统其实品瓶颈的话,因为我们之前考虑的更多是稳定,追求稳定性能上还是有些欠缺,我们下一步主要考虑如何从性能上提升我们的系统,因为我们现在主流的这种内部通讯方式是MQ,MQ通讯方式有一个缺点就是,我可能效率上不是很快,但是我很稳定,因为我通讯的这种频率会比较频繁,跟MP交互,这个时间上很难保证,但我们考虑如何去提高这个性能,一个是有些模块可能并不是要求,它有多么的安全,还是它有时候为了要求是效率,比如我的异步的日志的这些模块,这些模块怎么处理?两种方式考虑,一种是我直接通讯,直接通讯又破坏了我们现在这套架构,我们可能考虑使用这种Readies的这种形式,因为Readies是内存级的,它会相当于比MQ来说缺少了一些SAK事务性这些东西,但是它的效率更高,我们考虑如何去把Readies融入到我们这套架构里,去替部分环节的这种MQ同时,利用Readies用队列的形式去解决这个问题,这是一个方向,另外的方向,我们团队的自动化程度,或者说容器化程度,还有待提高,这块是我们下一个重点,因为我们发现,不能说解决了这个开发人员的这个难题以后就不管其他的环节,至于运维人员压力也很大,他们要经常做上线,包括测试人员要进行测试,这种自动化我们也考虑,在付钱拉的下一个阶段,也考虑把它纳入进来进行一个优化。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT