天天快讯:中国工商银行应用流量防护实践
作者 | 中国工商银行金融科技研究院云计算实验室
(资料图片仅供参考)
前 言
互联网金融时代,金融产品和服务模式出现了日新月异的变化,新技术层出不穷,应用架构的复杂程度不断增加,系统承载的交易量也随之攀升,如何在加快企业数字化转型的同时保障业务安全稳定运行,是金融 IT 系统建设面临的重要问题,而以交易流量为切入点开展流量防护工作,则是 IT 系统在稳定性守护方面至关重要的环节。
为了进一步提升业务交易的连续性,中国工商银行(后简称工行)于 2015 年开始探索分布式流量防护能力,从最初的逐步尝试到抽取提炼,再到如今已建成了同业领先的流量防护平台,每日防护流量超百亿笔,有效守护了涉账、涉敏交易的稳定,形成了企业级的流量防护能力。本文主要介绍了工行在企业级流量防护能力建设过程中的实践经验。
发展历程
为保证系统稳定和业务连续运行,更好的应对各种异常流量情况,工行于 2015 年开始探索分布式流量防护能力,历经多年打磨,最终形成了企业级的流量防护网。
2017 年以前,初步形成应用级流量防护
在 2017 年以前,常常遇到因为异常流量冲击而导致服务稳定性下降的问题,短时间的突增流量会直接冲破服务器性能瓶颈,最终造成业务受损。为避免类似问题的发生,各核心应用分别开发了适用于各自业务场景的流量防护能力,包括并发线程控制、访问速率控制等手段,基本实现了对核心交易模块的简单防护能力。
2017 年至 2020 年,提取公共能力,形成框架级流量防护
进入 2017 年,工行大力推进统一分布式服务框架的落地工作,越来越多的新老应用开始向标准化的服务框架进行迁移。为了保障业务不受异常流量影响,工行在服务框架上增加了并发数控制能力,并强制要求应用对上线的所有服务进行配置,以保证生产运行过程中始终有防护策略兜底。
2020 年至今,搭建标准且统一的企业级流量防护平台
随着业务边界不断拓展,业务交易量不断上升,系统的稳定性成为影响交易表现的最重要因素。在核心业务的交易过程中,业务的交易整体成功率,常会因边缘环节防护能力的缺失而受到影响。为此,工行通过搭建统一的流量防护平台,整合各技术框架能力,制定标准的流量防护方案,覆盖全行流量防护场景。截至目前,流量防护平台已帮助大零售、大对公、信贷等 9 个重点产品条线的 160 余个核心应用快速构建流量防护能力,有效保障了全行交易的稳定运行。
实践心得
在流量高速膨胀的这几年里,工行逐步将小范围的应用级防护升级为企业级的流量防护能力,并通过以下 4 个方面的努力,最终实现了标准化的限流、熔断、阻断能力,横向适配了绝大多数技术栈,纵向支持对各应用、群组、单元进行实时策略调整,有效实现了对涉敏、涉账、对客场景的守护。
统一标准,形成适用且易用的防护能力
首先,需要对原有服务框架、核心应用各自提供的流量防护能力进行整合,提炼形成标准化的能力手段。
综合对比原有实现方式及业界常用的方案后,工行选择了开源的 Sentinel 作为流量防护的统一工具。对比分析情况如图 1 所示。
图 1 Sentinel 与其他工具对比
为更好的满足全行的使用场景,工行在 Sentinel 的基础上进行了二次开发,重新定义限流、熔断、阻断三种基础能力(如图 2 所示):
限流,一种保护服务提供方的常见手段,当提供方因为大量的请求而达到性能资源瓶颈时,系统根据预设的规则对超限的流量进行快速拒绝。
熔断,一种保护服务调用方的重要手段,是指当对下游服务的异常访问过多、耗时过长时,系统自动断开对下游服务的访问,以保证整体业务不被当前交易环节所拖垮。
阻断,运维人员根据实际运维需要,直接关闭某个服务资源或服务调用。
图 2 限流熔断等能力定义
除上述基础能力外,为更好的贴近业务场景,工行对限流、熔断等能力进行了维度上的扩展,即向上抽象形成节点级的全局限流,向下针对各类参数、流量标签实现精细化的场景提升(如图 3 所示)。
图 3 限流熔断能力维度设计
为了向新旧业务场景提供标准、统一的场景化能力,工行针对不同的交易场景提供了请求体参数解析的能力,方便渠道、网关等负责提供公共入口的应用快速根据请求中的参数进行不同维度的流量防护(如图 4 所示)。
图 4 参数限流说明
在判断的过程中,请求经过接口维度的限流防护后,还需要对“接口 + 参数”维度进行校验。在此过程中平台将传入接口的所有参数传递给应用编写的参数解析器,参数解析器负责将全部参数按照业务逻辑进行整合后返回,根据返回的参数值校验是否符合事先配置的参数限流策略,校验通过则放行请求。
通过开放参数解析器的形式,可以实现对请求中复杂参数的解析以及业务场景的自定义拼接。
覆盖边缘场景,打造高拓展技术组件
标准的流量防护能力基本可以解决各个场景下的异常流量问题。接下来,工行需要将标准的能力封装到公共组件中以便各应用接入使用。
首先遇到的问题是“如何才能将对多套开发框架的支持融合在同一个组件中,减少开发、维护的成本”。经过研究,工行选定了字节码增强技术,java 的字节码增强技术是一种对现有字节码进行修改或者动态生成全新字节码文件的技术,只要基于 java 语言编写的服务框架,便可以通过操纵字节码实现代码的植入,对于新旧框架共存的体系来说,是一种非常不错的方式(如图 5 所示)。
图 5 字节码增强技术说明
工行在明确了以字节码增强技术底座作为统一支撑核心后,开始对上层能力进行设计,除了流量防护外,还引入了链路追踪、指标采集、流量录制等更多运维能力,通过插拔化的形式,将各个能力模块注入到这个大的客户端中,在保证能力独立运行不互相耦合的同时,通过同一个客户端将非功能性的运维领域能力进行整合。
下面对本次全新打造的技术组件做一个简单的总结(如图 6 所示):
适配方面:通过修改字节码的方式,适配服务间调用、数据库访问等场景。
能力方面:通过对齐监控运维元数据,打通监控治理屏障,形成流量控制、链路追踪、指标采集等监控治理一体化的能力视图。
组件核心方面:通过模块化管理、统一编程 SDK 提供等,实现组件自身高解耦、高容错、高标准的特性。
图 6 统一客户端架构设计
联动实时监控,实现异常快速止血
除应用在服务上线前配置的常态化的限流策略外,工行还针对生产运行过程中可能出现的异常流量,提供快速应急调整的能力。
利用分布式配置中心支持快速调整配置并实时通知到节点的特性,运维人员现在可以通过生产监控视图快速地跳转到限流规则配置页面,根据观测到的监控指标,对限流、熔断等策略进行实时的配置下发(如图 7 所示)。
图 7 监控治理一体化视图
通过页面提交限流策略后,策略会被下发到远程配置中心,配置中心实时推送到应用节点后生效情况出现在监控视图中(如图 8 所示)。
图 8 在线应急实时生效
总结场景规律,提炼相应技术规范
长期的实践证明平台在具备了强大技术组件和完善的功能机制后,还需要制定标准的使用规范指导应用更加正确地使用相关能力。为此,工行整理了一套适用于行内现有场景下的标准规范,在这里简单介绍。
应用内所有服务应对外配置限流策略
限流是一种保护提供方节点性能资源的重要手段,在分布式场景下,每个节点的所有服务都应对外配置限流策略,保障节点自身性能容量冗余。
重点交易功能中对于非关键服务的访问应配置熔断策略
熔断作为一种杀伤性较强的手段,适用于对重点交易功能中的非关键服务调用进行配置,如对转账功能中的积分增减进行熔断的配置,以免积分接口的调用影响转账交易的成功率(如图 9 所示)。
图 9 非关键服务熔断示意图
对数据缓存类的访问(如 Redis)应配置熔断策略
分布式数据库的调用是现有生态下非常重要的组成部分,为了避免缓存访问异常,对交易造成较大干扰,需快速启用缓存备份方案(访问主数据库或其他),因此平台应对数据缓存类的访问配置熔断策略,确保请求能够及时断开并恢复交易(如图 10 所示)。
图 10 数据缓存类调用熔断示意图
随着应用架构的不断转型和新业态新模式的不断出现,工行将不断提炼完善,指导应用更加正确的使用流量防护能力,最终保证服务运行稳定。
现有成果
流量防护平台作为分布式系统稳定性保障的重要支撑平台,深度对齐工行架构转型各项工作要求,覆盖全行核心及边缘场景,截至目前已完成全行所有重点应用的推广,重点业务场景覆盖率已超 60%,在零售、对公、信贷、国际化等多个产品条线均有相关能力的落地。
平台目前处于推广的高峰期,每日监控流量 150 亿笔,每月拦截异常流量百万笔以上,通过提供标准化的流量防护能力,帮助多个涉敏、涉账、对客的业务系统在出现故障时(如网络抖动、Ceph 存储故障)保障自身性能冗余,有效守护了交易的连续与稳定(如图 11 所示)。
图 11 平台流量监控效果
未来展望
随着分布式体系的不断壮大,流量防护体系的构建已成为保证系统稳定的最基本要求。未来,工行将继续对标业界优秀实践,探索流量防护能力在保障服务稳定可靠的同时,实现与研发效率、服务规模的互相平衡。重点探索流量防护能力的智能化转型,加大对现有运行数据的萃取与利用,形成运行指标预测、智能流量控制等能力,帮助应用更正确的使用相关能力,进一步夯实工行系统稳定性的支撑能力。
- 天天快讯:中国工商银行应用流量防护实践(2023-01-18 14:02:21)
- 丰收中国 数字京行 京彩年货节即将开幕(2023-01-18 14:02:19)
- 每日看点!央行菏泽市中心支行连开罚单,山东2家农商行共计被罚80万(2023-01-18 13:56:53)
- 国家外汇管理局:2022年银行累计结汇172386亿元,累计售汇165467亿元(2023-01-18 13:48:55)
- 天天新资讯:被中国超过13年后,日本再失世界第三(2023-01-18 13:47:45)
- 环球快资讯:1.18午评|这个概念开始重点关注!(2023-01-18 13:53:26)
- 三部门组织开展2023年重点新材料首批次应用保险补偿机制试点工作(2023-01-18 12:42:04)
- 机警特刊⑱|Q3现金类理财收益下行57bp,更有产品存续规模低至1.5万元!(2023-01-18 12:57:56)
- 民生银行业绩低迷,副行长胡庆华辞职,青岛分行虚增存款规模被罚(2023-01-18 12:44:06)
- 世界即时:偿付能力数据不真实被通报!背靠大树的友邦人寿为何屡遭“点名”?(2023-01-18 12:51:40)
- 天天热资讯!中信银行郑州分行:开展“双节”期间反假货币宣传活动(2023-01-18 12:43:08)
- 当前观察:午评:大盘成了不死鸟,短线或还有上涨空间!2因素促观点转变,操作紧抓一条安全绳!(2023-01-18 12:49:26)
- 全球速递!金价涨了!2023年1月18日各大金店黄金价格多少钱一克?(2023-01-18 11:41:42)
- 【世界独家】银保监会等三部门:开展2023年重点新材料首批次应用保险补偿机制试点工作(2023-01-18 12:00:58)
- 【环球聚看点】个人养老金保险产品扩容:阳光人寿、工银安盛等险企产品入选(2023-01-18 11:57:27)
- 看点:浦发银行京东联名信用卡2022年发卡突破100万张!以优质用卡体验实力“圈粉”(2023-01-18 11:52:47)
- 国内又有2家银行破产?这三种情况一分钱不赔,老百姓存钱要当心(2023-01-18 11:56:22)
- 成立20年,淘宝为何难解假货死局(2023-01-18 11:47:23)
- 世界快看点丨何谓民营房企的合理融资(2023-01-18 11:43:39)
- 三元电池材料NCA的“瓶颈”(2023-01-18 11:40:14)
- 广东银保监局:2022年全省各项贷款余额24.3万亿元,同比增长10.7%(2023-01-18 10:56:28)
- 每日看点!促消费迎新年 中信银行推出“有温度”的金融服务(2023-01-18 10:48:53)
- 上海银行间同业拆放利率多数上涨(2023-01-18 10:43:14)
- 今日看点:张国栋:浦发银行混沌工程探索与实践(2023-01-18 10:45:00)
- 天天微动态丨这个春节,大厂不再疯狂发红包:金额对半砍,用户“玩不动也玩不懂”(2023-01-18 10:44:03)
- 天天新动态:【看新股】亚德林更新招股书:毛利率、研发费用率不及行业均值 应收账款占营收比重大(2023-01-18 10:53:37)
- 新能源龙头股票有哪些?龙头股是什么?(2023-01-18 10:49:07)
- 股票带n字头的是什么?股票名字前面“L”是指什么?(2023-01-18 10:48:21)
- 上班路上发生交通事故怎样赔?交通事故主要包括什么?(2023-01-18 10:47:44)
- 北交所打新股的规则有哪些?北交所股票可能存在哪些风险?(2023-01-18 10:46:51)
-
全球速递!金价涨了!2023年1月18日各大金
今天是1月18日,金店黄金价格基本保持不变,仍是个别金店出现上涨,但涨幅不大,只为1~...
-
【世界独家】银保监会等三部门:开展2023年
图片来源:图虫创意近日,工业和信息化部办公厅、财政部办公厅、银保监会办公厅下发《...
-
【环球聚看点】个人养老金保险产品扩容:阳
个人养老金保险产品再度扩容。1月17日,澎湃新闻注意到,个人养老金保险产品名单已由最...
-
看点:浦发银行京东联名信用卡2022年发卡突
2022年浦发银行(行情600000,诊股)京东联名信用卡年度累计发卡突破100万张。双方通过“...
-
国内又有2家银行破产?这三种情况一分钱不
一直以来,老百姓的逻辑思维是,所有行业当中,银行是最赚钱、且是永远都不可能破产的...
-
成立20年,淘宝为何难解假货死局
作为国内电商鼻祖,淘宝已经成立20年,为何依然无法摘掉假货标签?背后,是不诚信商家...
-
世界快看点丨何谓民营房企的合理融资
日前,中国人民银行、中国银保监会联合召开主要银行信贷工作座谈会,明确提出要全面贯...
-
三元电池材料NCA的“瓶颈”
导读:在双重刺激之下,高镍体系的NCM811和NCA材料已成为市场竞逐的热点。中国作为全球...
-
广东银保监局:2022年全省各项贷款余额24.3
钛媒体App1月18日消息,2023年广东银保监局工作会议、广东银保监局系统全面从严治党和...
-
每日看点!促消费迎新年 中信银行推出“有
中信银行以迎新年为契机加大资源投入,围绕大众消费需求,推出了系列“有温度”的金融...
- 滚动
- 理财
- 房产