总体介绍

在互联 网金融行业一百多亿其实也算不上大平台,也就是二级阵营吧,其实每 次的架构升级都是随着业务重大推进而伴随的,在前一 代系统架构上遇到的问题,业务开 发过程中积累一些优秀的开发案例,在下一 代系统开发中就会大力推进架构升级。一方面可以平滑过度,一方面 公司资源可以大力支持,同时技 术的小伙伴们可以使用到前沿的技术,更有开发的成就感,就这样 我们大概也就是9个月就 行系统架构一次升级,就到了 我们现在的这套架构中。

很多网友经常会问,你们平台的TPS是多少呀,最大并发是多少呀,性能怎么样,说实话 我们是一个小公司,最夸张 也就上万人同时抢标,但是做 为一个中型的互联网金融平台要做的事情也真的不少,远远不 只是这些参数可以说的清楚;我们也 不是什么高大上的平台,使用的 技术也是目前比较主流开源产品,但在公 司不断发展的过程中也遇到了很多的问题,也尽量 去使用比较主流的、开源的、适合我 们的一些解决方案来构建整个系统,在这里 分享平台发展背后技术换代的变化,同时希 望和大家多做一些交流,多提一些建议。

我们进 行了四次大的架构变化,每代架 构都用一句话来总结:

  • 第一代架构特点:业务比较集中、功能满 足投资理财需求、快速上线

  • 第二代架构特点;分布式系统改造,平台化初具规模,各项垂 直业务系统搭建上线、产品端 极大丰富用户投资、大数据 平台研究并使用

  • 第三代架构特点;SOA治理,使用zookeeper作为注册中心,dubbo做监控和调度中心;cas实现单点登录,使用shiro做权限控制

  • 第四代架构特点;全面启 用微服务开发模式,springboot+springcloud技术桟 做为第四代架构技术支撑

下面做详细介绍


第一代系统架构

2014年应该 算是互联网金融元年,在之前 其实已经有很多互联网公司用着各种模式在生存,一直不温不火,但是到2014年突然火爆了起来,首先是网贷之家,网贷天 眼这种第三方网站流量突然增加,接着是 媒体报道不断跟进,再后来 就报出各种互联网金融公司获得XXX美元投 资的报道越来越多,政策也慢慢明朗,于是很多大型公司(集团)也就趁 着这股热潮跟进,其中就包括我们。

第一代 系统最主要就是抢时间,公司希 望用最短的时间内保证系统上线,那时候 移动浪潮已经启动,于是决 定优先上线移动端,网站可以暂不考虑。公司当时有PHP和Java两种开 发语言技术储备,因为PHP在快速 开发上面有着非常大的优势,因此决定采用前端PHP+后端Java这种模式。系统分成了三层:用户层:安卓和IOS移动端;接口层:php提供用户和交易接口;后端:后端有两部分,后台和定时系统。后台用PHP开发和 接口层公用了一个系统,另一个是定时系统,负责计息、派息、到期等 定时任务等使用了java开发。

基础服务和中间件,mysql做了最 基本的主从来支持,第一代 系统只是使用了mysql的主库,从库只是同步备份;memcached用来处 理用户抢标的并发问题,也只用了这一块;ActiveMQ用来使 用二级市场的转让撮合以及其它一些异步消息通知。项目部署:php使用apache部署,定时服务使用tomcat6来做应用服务器,使用lvs来做前端apache的负载,基本上 第一代也就这些技术了,下面是 第一代系统的架构图。