宜人贷从2011年初创,到跻身互联网金融上市第一股,网贷业务经历了高速发展,在新的战略形势下,用户量、访问量遭遇了井喷式增长。用户产品快速迭代、多种金融产品齐头并进,种类繁多的运营活动扑面而来,诸多流量尖峰接踵而至,业务的高速发展需要支持,架构需要随之演变,团队工程能力也需要提升。 我们将以后台系统架构升级改造为例,和大家分享我们的历程:其中有方法,有原则,有收益,当然也有坑。我们将会展示我们是如何解决这些问题,从而实现业务和技术相互促进协同发展的

注脚

展开查看详情

1. 业务高速发展下的
 互联网金融系统架构演变 演讲者/张现双!

2.自我介绍 张现双,宜人贷研发架构师,移动后台负责人,负责 移动后台的技术研发和系统架构设计,并随着业务增长持续 不断的进行性能优化和系统架构升级。 从事过研发、运维、dba等工作,在应对互联网系统流 量、并发、安全、一致性问题等方面有一些经验。 翻译出版专著:《可伸缩架构:面向增长应用的高可用》

3.大纲! 01 宜人贷发展历程 02 移动后台架构演进 03 流量应对策略 04 关于监控

4.第一部分 宜人贷发展历程

5.宜人贷发展历程 网站上线 纽交所上市 网贷平台 2011.12 2013.9 2017 财富管理平台 2012.3 2015.12 宜人贷成立 移动APP上线 YEP

6.业务! 多元化发展! [部分] 网贷平台 财富管理平台 YEP

7.第二部分 移动后台架构演进

8. 初创阶段 效率优先,快速响应,第一要务是生存 没有一种! 成长阶段 架构能! 用户和业务持续上量,业务快速发展 包打天下 扩张阶段 业务和团队规模增长迅速,多元化发展,对效率和质量提出更高要求

9. PC WEB 初始,! 容错性、稳定性差 效率优先 Server 技术债迅速积累 代码安全带来挑战 DB

10.成长,移动后台旁路追赶 PC WEB AND/IOS/H5/Open CDN 业务和团队规模迅速扩张 网站、基础服务 网贷服务 静态站 移动后台 粗粒度服务化,基础设施完善 批 安全加密 网贷服务 CDN/页面缓存/静态站/缓存集群 Server 借款流程 处 理 活动 同步 移动后台旁路 支付结算 订单 系 统 版本管理 … ... 产品 ... Cache集群 流程double,冗余开始出现 移动后台单体 DB主 DB从 DB主 DB从

11.继续成长,瓶颈明显 后台日益庞大,业务冗余严重 N多业务排队上线,瓶颈明显 热点场景频发,影响单体稳定 2pizza团队,系统单体制约

12.措施:剥组件,拆单体,合冗余 Ng+ LUA 剥离到网关 API接入 Pc Web Android/ios/h5/php/openApi ??! 安全控制 流量调度 业务前置控制 拦截、校验 降级 接口缓存 部分功能前置 攻击类 限流 接口重写 接口签名 接口分发 热点活动支持 加解密 灰度 热点功能前置 移动后台 财富圈 5G 微信 WAP 防刷 接口版本控制 统一接口标准 配置系统 指标监控 配置管理 业务前置配置 日志 核心服务 业务 OpenAPI 安全 基础服务 管理平台 流控 网贷 商城 加密 消息 配置 用户 熔断 监控 报警 产品 外 保险 财富圈 验签 限流 部 基金 健康财富 拦截 性能 版本 理财单 商城 系 MIS 并发 交易 渠道 FNS 统 支付/钱包 …… 校验 幂等 缓存 版本 移动后台打散 商城MIS Fund Other P2P 轻业务上浮 BASE 宜睿 重业务下沉 基础服务 积分系统 优惠券 基金服务 网贷服务 支付中心 标签 基础服务 资金存管 宜人币 …… 保险服务 营销平台 电子签章 用户中心 人脸识别 埋点 会员系统 账户中心 更多...

13.措施:剥组件[深度定制网关] Ng+ LUA 运营活动动态配置,接口重新编排 API接入 热点功能前置,网关分发许可限流,保护底层 安全控制 流量调度 业务前置控制 接口req/resp重写,透明操作 拦截、校验 降级 接口缓存 全功能API配置,热加载 攻击类 限流 接口重写 接口签名 接口分发 热点活动支持 方案: 加解密 灰度 热点功能前置 nginx、 istio 防刷 接口版本控制 spring-gateway、linkerd、zuul 配置系统 指标监控 配置管理 业务前置配置 日志

14.措施:合冗余[消除链路.裁剪节点] 接入层 接入层/GW 接入层 接入层/GW "!1 2 2 移动服务C 1 移动服务C "! 移动服务C 服务A 服务A 服务A 服务B 服务A C 服务B before! after before! after 冗余链路消除40多条 裁剪冗余系统节点4个,消除接口200多个 减少系统间交互80多次 减少对接成本,目的就是快

15.措施:优化链路[合并.重组.丢弃] 收益: 接入层 接入层/gw! 接入层 优化组合流程8条,效率提升 1 2 2! 单点得到弱化 1! "! 移动服务C 丢弃僵尸接口36个(版本覆盖率) 移动服务C ! ! v1 v2 v3 "! 服务A 服务B 服务!A! 服务!B! 移动服务 挑战: 接口管理带来挑战 before! after 丢弃 链路追踪趋于复杂

16.重要原则 幂等、接口可重入 接口规范化(命名、类型、长度等) 分布式事务,补偿、撤销机制 接口缓存,热数据尽可能前置 DB跟随服务 代码、逻辑、结构等都要适时重构

17.最终架构[简版] 网关(略) 首页 移动基础服务 活动中心 财富圈 Yiri 金融产品 feed 消息 配置 微信 WAP 4G 积分商城 ... 监控 报警 移动后台打散,界限趋于不明显 极大消除冗余,三级两层划分 优惠券 支付中心 积分系统 批处理 营销支持 底层服务有序汇总直面前端 电子签章 理财服务 基金服务 基础服务 数据支持 流量统一出口 保险服务 账户中心 … 第三方系统 ...

18.迅速响应业务变化 before after