银行核心系统负载均衡基础设施高可用

工行 SLB 软负载均衡平台

中国工商银行软件开发中心核心基础设施项目,基于 HAProxy + Confd + ETCD 构建的企业级七层/四层软负载均衡平台,承载全行数千个应用系统的流量调度与高可用保障。

2022.01 — 2023.10
工行 SLB 软负载均衡平台

工行 SLB 软负载均衡平台是中国工商银行软件开发中心的核心基础设施项目,为全行应用系统提供统一的负载均衡与流量管理能力。


项目背景


中国工商银行作为全球最大的商业银行之一,其内部运行着数千个业务应用系统。传统的硬件负载均衡设备成本高昂、扩展性差,无法满足云化转型和微服务架构下的弹性需求。SLB 软负载均衡平台应运而生,通过软件定义的方式实现高性能、高可用的流量调度。


平台组件


  • 四层软负载: 基于 TCP/UDP 网络传输层,处理数据库连接池、消息队列等底层流量
  • 七层软负载: 基于 HTTP/HTTPS 应用层,支持域名路由、上下文根匹配、Cookie 会话保持等高级策略
  • 管控平台: 统一管控节点配置,提供 Web 化运维管理界面

  • 核心功能


  • 业务级负载路由: 基于域名、上下文根、Cookie 等细粒度策略实现精准流量分发
  • 云容器联动: 与容器云平台深度集成,实现后端节点的动态发现与自动更新
  • 灰度引流: 基于 HTTP 参数实现灰度发布,有效控制应用投产风险
  • 故障自隔离: 深度健康检查机制(option httpchk),自动隔离异常后端节点
  • 全局负载均衡: 基于 HTTPDNS 联动实现跨数据中心的全局流量调度
  • 单元化切流: 设计单元化切流接口,实现节点变量的单元化修改与批量回退操作
  • 设备自服务流水线: 新增 SLB 设备自服务流水线,提升自动化能力并减少人工介入

  • 技术架构


    **HAProxy** 作为核心负载均衡引擎,配置包含 Global(maxconn/ssl)、Defaults(timeout/balance)、Frontend(ACL 策略/bind 端口)、Backend(健康检查/server 列表)四大配置段。


    **Confd** 作为配置管理代理,监听 ETCD 数据变化,读取 TOML 配置文件,渲染 Go 模板(.tmpl),自动生成 HAProxy 配置并执行热重载,实现配置的实时下发。


    **ETCD** 作为分布式配置中心,存储集群全局参数、Frontend ACL 规则、Backend 节点信息和负载路由映射,通过 Watch 机制实现配置变更的实时推送。


    我的贡献


    主导设计单元化切流接口,实现节点变量的单元化修改与批量回退操作。重构设备重载模块代码,优化负载策略算法配置流程。新增 SLB 设备自服务流水线,提升自动化能力并减少人工介入频率。

    项目截图

    工行 SLB 软负载均衡平台 截图 1
    工行 SLB 软负载均衡平台 截图 2
    工行 SLB 软负载均衡平台 截图 3
    工行 SLB 软负载均衡平台 截图 4

    技术栈

    JavaSpring BootHAProxyConfdETCDNginxDockerShellLinuxMySQLRedisJenkins

    项目信息

    日期
    2022.01 — 2023.10
    类型
    银行核心系统、负载均衡、基础设施、高可用