产品白皮书
# 版本更新说明
| 日期 | 手册版本 | 适用产品 | 更新说明 |
|---|---|---|---|
| 2024年12月 | V2.0.2 | ALB | 新增版权声明等内容 |
| 2025年12月 | V2.0.5 | ALB | 产品升级 |
# 引言
随着互联网技术应用的持续高速发展,行业软件研发模式从单体架构到分布式,再到如今的微服务架构,越来越高度依赖应用与服务的“入口”。传统的应用“入口”主要包括硬件负载均衡器、软件负载均衡器以及一些带反向代理功能的 Web 服务器,传统的应用中间件一般也带一个内嵌的负载均衡器,如金蝶 Apusic 应用服务器于 2000 年面市时就自带了一个基于 Java 开发的负载均衡器,起到统一应用入口、集群调度、负载均衡器等作用。然而,在云计算、微服务时代,传统技术已不再适应新的应用模式,负载均衡器技术及产品也面临升级换代的挑战。
在云和微服务架构下,负载均衡究竟发生了什么变化?首先,传统负载均衡通常只能解决单一应用的入口问题,而云环境带来入口的多样性,我们面临的不再是某个应用的单一入口,而是混合了不同应用、不同服务的复杂入口;其次,传统负载均衡往往是基于URL 的粗粒度的负载调度处理,而云环境下往往是基于组件级、服务级的的精细化调度,如需要精确考虑不同服务之间的编排和调用链关系;最后,传统负载均衡处理能力相对有限,达到 10K 级请求已算不错,而云环境下往往要求处理能力达到 100K 级甚至 1000K 级请求以上。
因此,金蝶天燕于启动了负载均衡器产品的升级改造, 采用全新的技术路线和技术架构,并从内嵌在AAS应用服务器的模块发展为独立的负载均衡软件产品。
# 发展历程
- 2025年12月,ALB v2.0.5标准版发布上线。
- 2024年10月,ALB原生高可用组件v1.0上线,可一键部署主备高可用集群。
- 2023年12月,ALB v2.0标准版适配多个国产软硬件系统。
- 2023年7月,发布ALB v2.0标准版,提供快速替换Nginx的能力。
- 2022年6月,发布ALB v2.1版本,支持三员权限管理和多实例部署管理。
- 2021年12月,发布ALB v2.0版本,提供插件扩展能力、适配多个国产软硬件系统。
- 2021年8月,发布ALB v1.1版本,提供动态代理和快速安装功能。
- 2021年7月,开启ALB v2.0项目,适配国产软硬件系统和兼容Nginx。
- 2021年7月,发布完善的ALB v1.0版,为AAS提供负载均衡能力。
- 2021年5月,ALB v1.0 beta版,具备服务代理功能。
- 2021年1月,自主研发负载均衡器软件立项。
# 产品概述
金蝶Apusic负载均衡器软件(Apusic Load Balancer,ALB)是一款高性能、高可用性的Web服务器。ALB不仅能高效地管理大规模集群中的客户端请求与流量,还兼具服务代理和微服务网关的功能。作为服务代理,ALB负责请求的负载均衡、安全控制、验证与过滤,确保后端服务的质量;作为微服务网关,它不仅隔离了客户端对微服务应用系统的直接访问,还提供了路由管理、动态配置、自定义插件支持、精细化流量拆分以及第三方服务发现等功能,可支撑微服务一站式快速接入。
# 产品名称
金蝶Apusic负载均衡器软件V2.0,简称ALB,英文全名为:Apusic Load Balancer。在不同使用场景下,ALB分为以下两个版本:
- 企业版:适用于传统服务代理和微服务网关场景。
- 标准版:适用于高可用和高性能的服务代理场景。
# 产品的受众
- 业务具有高并发场景并需要负载均衡的企业。
- 分布式、微服务架构的应用开发商。
- 业务系统复杂繁多,需要统一代理网络出入口的企业和架构。
- 具备静态资源代理需求的企业和机构,ALB可以支撑静态内容代理需求。
# 金蝶Apusic负载均衡器软件企业版
# 产品定位
ALB能够应对大规模的集群、云平台在面向客户端提供服务时,对客户端访问请求和流量管理的需求,实现访问请求的验证、处理、转换和分发等操作,从而隔离客户端访问对提供服务的应用系统、平台以及资源的直接影响,达到对服务集群访问流量控制、访问管理和负载均衡的目的。
# 核心功能
| 功能 | 功能说明 |
|---|---|
| 负载均衡 | ALB能够⽀持轮询、带权轮询、一致性哈希等主流负载均衡算法,⽀持⾯向⽆状态服务和有状态服务提供⾮亲和性/亲和性的负载均衡场景,⽀持 HTTP、HTTPS 的反向代理,以及对 TCP/UDP、gRPC。 |
| 全局动态能力 | 全局动态能力指的是:配置修改提交即生效,无需重启服务,不影响现有服务。 |
| 流量管理 | ALB提供了完善的流量管理机制,可根据服务响应状态对上游服务访问进⾏熔断操作,并⽀持按流量、⽤户、客户端、引⽤者(Referer)、域名等条件对服务的访问进⾏管理 |
| 插件扩展 | ALB提供了丰富的场景化插件,能够在路由转发、流量管理、运维、安全等⽅⾯提供⽀持,同时允许⽤户根据需求和场景灵活扩展插件。 |
| 控制中⼼ | ALB提供了图形化的管理控制中⼼,⽤户可通过管理控制中⼼对负载均衡器中的路由、上游服务和插件进⾏管理和配置。 |
# 产品功能架构
ALB通过流量处理和请求转发对访问请求执⾏代理操作。在流量处理过程中,ALB可以⽀持以插件的⽅式完成对访问请求的处理,通过插件的⽅式建⽴请求的处理流程,从⽽实现认证、⽇志、监控、协议转换、安全、流量控制和请求报⽂转换等处理逻辑的编排和应⽤;在请求转发过程中,ALB可以按照处理结果,基于特定的负载分配算法,将处理后的访问请求转发给上游的服务,完成对访问请求的代理操作。
# 主要功能
# 全平台
- 支持信创平台: 能够在主流信创国产化平台上运行,支持x86、ARM64等多种服务器指令集。
- 云原生: 支持云原生的部署方式,可在多种基础设施/平台资源中部署。
# 多协议支持
- HTTP(S)。
- TCP/UDP。
- Dubbo。
- gRPC。
- MQTT,支持 MQTT 3.1.* 和 5.0 标准。
- Websocket。
- 静态资源代理。
- php_fcgi协议。
# 节点和流量管理
- 配置动态更新:配置和插件动态热更新,无需中断服务。
- 代理请求重写: 支持重写访问请求的host 、uri 、schema 、enable_websocket 、headers 等信息。
- 反向代理输出重写: 支持自定义修改响应内容的status code 、body 、headers等信息
- 函数调用:支持在ALB处理访问请求前/后阶段添加并调用自定义的函数。
- 动态负载均衡:支持有权重的轮询、一致性Hash等负载均衡算法,支持服务端点的即时增减。
- 健康检查:支持服务端点的健康检查,可自动过滤不健康节点。
- 服务熔断: 根据服务调用返回的错误次数/比率中断。
- 服务镜像代理: 支持对服务端的访问进行镜像操作。
- 流量拆分: 允许用户控制多个上游服务之间的流量配置。
- 流量管理:支持限制速率、限制请求数、限制并发等流量管理策略。
- 批量请求:支持基于HTTP管道的批量HTTP请求。
# 精细化路由
- 路径规则匹配:支持全路径匹配和前缀匹配;支自定义路由匹配函数。
- 灵活的路由条件:用户可以使用 cookie, args等做为路由的条件,支持各类操作符做为路由的判断条件。
- 支持IPv6:支持使用 IPv6 格式匹配路由。
- 路由生命周期:支持路由的自动过期配置。
- 路由优先级:支持对路由的优先级配置。
# 安全防护
- IP 黑白名单
- Referer 白名单
- 限制速率
- 限制请求数
- 限制并发
- 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
- CORS:为你的 API 启用 CORS。
- URI 拦截器:根据 URI 拦截用户请求。
- 请求验证器。
# 运维友好
- 可观测的性能管理: 支持 Apache Skywalking和 Zipkin对性能的可视化追踪和管理。
- 对接外部服务发现:除了内置的 etcd 外,还支持 Consul 和 Nacos 的 DNS 发现模式。
- 监控和指标: 支持与Prometheus以及金蝶Apusic监控平台(AMP)的集成。
- 高可用集群:ALB集群通过统一配置中心确保节点间的一致性,支持节点数量的动态增减。
- 图形化的控制中心:支持对ALB的路由和服务配置和管理。
- 全局规则:允许对所有请求执行插件,比如限流限速等。
- 外部日志记录器:支持将访问日志导出到外部日志管理工具。
# 高度可扩展
- 自定义插件: 允许挂载常见阶段,例如init, rewrite,access,balancer,header filter,body filter 和 log 阶段。
- 插件可以用 Java/Go 编写。
- 自定义负载均衡算法:可以在 balancer 阶段使用自定义负载均衡算法。
- 自定义路由: 支持用户自己实现路由算法。
# 技术特性
# 稳定可靠运行
ALB基于多进程模型,保障某一个请求连接代理出现错误,不影响其他进程;出现异常的进程退出后,其主进程将快速再次创建一个进程保障服务性能不下降,以及多个实例支持共享配置,组件主备或者负载均衡,实现更高的可靠性。
# 支持高并发
ALB通过异步非阻塞机制,结合IO多路复用技术,支持极高的并发。
# 模块化设计
ALB通过解藕请求接入、处理、负载均衡、响应返回的阶段,并嵌入特定逻辑,实现个性化与可支撑微服务流量入口的架构,以及支持Java/go语言编写业务流量管理需求插件。
# 产品优势
全局动态配置
ALB配置项所见所得,提交配置修改即生效,无需重启或重新加载负载均衡器,即实现动态路由、动态上游、动态插件、动态的SSL证书绑定,实现动态的负载均衡。
多协议代理
ALB支持完善的网络四层/七层架构协议的代理,覆盖HTTP、HTTPS、TCP/UDP、Dubbo、MQTT、gRPC、Websocket、PHP FastCGI。
全面适配信创环境
ALB可稳定高效运行在国产操作系统与硬件架构体系上,其中操作系统包含:UOS、华为OpenEuler、麒麟V10、中科方德等;硬件体系包含:飞腾、鲲鹏、兆芯与海光硬件平台。
高度可扩展
ALB支持通过Lua语言开发自定义插件,可在负载均衡的各个阶段嵌入并执行流量管理功能,实现差异化的负载均衡需求。
安全防护
ALB支持多种身份验证能力,包含:IP黑白名单、Referer白名单、限制速率、限制请求数、限制并发、CORS等功能。
# 应用场景
应用服务集群的负载均衡器
ALB与Apusic应用服务器深度集成,支持AAS应用服务器管控台一键启用ALB负载均衡器,支撑运行在AAS上的分布式应用的动态负载均衡,以及主动健康检查,能够及时发现并屏蔽故障服务,保障业务不中断。
网站动静分离
ALB支持本地静态资源代理与多协议后端服务的接入,支撑动静分离架构应用的负载均衡,提高用户访问静态代码或资源的速度,降低对后台服务访问的压力。
网站服务能力水平扩展
ALB拥有动态上游服务接入能力,支持多种负载均衡算法与外部服务发现组件的接入,可支撑业务和网站流量增长带来的高并发场景,达到动态伸缩Web服务规模、实现业务水平扩展效果。
统一流量出入口
ALB支持访问流量的安全验证、限流与限速,支持访问日志的收集与推送,可支撑复杂应用平台出入流量的统一安全验证和管理、访问流量的统计与审计,从而实现从入口对后端访问流量的统一管控。
# 金蝶Apusic负载均衡器标准版
# 产品定位
金蝶Apusic负载均衡器标准版是一款高性能、高并发的Web服务器和反向代理服务器,其拥有轻量级、模块化架构和跨平台能力。ALB标准版专为处理大量并发连接而设计,提供静态内容服务、负载均衡、邮件代理等核心功能,并支持国密SSL、访问控制等安全特性。ALB标准版的灵活性和可扩展性使其成为构建高性能网站和应用的理想选择,尤其适合需要处理大量静态资源和动态请求的场景。
# 核心功能
| 功能 | 功能说明 |
|---|---|
| 静态文件服务 | ALB支持静态文件缓存、断点续传等功能,实现快速、低延迟的静态内容分发。 |
| 反向代理 | ALB支持HTTP、HTTPS、TCP、UDP等多种协议,实现反向代理功能。 |
| 邮件代理 | ALB支持邮件协议,实现邮件代理功能。 |
| 负载均衡 | ALB支持四层负载均衡、七层负载均衡,实现负载均衡功能。 |
| 安全 | ALB支持HTTPS协议,支持国密SSL双向认证通信,可保障客户端和服务端通信安全可信。 |
| 跨平台 | ALB支持国产软硬件平台,包括:鲲鹏、龙芯、兆芯、海光等国产软硬件平台。 |
| 监控 | ALB支持监控采集和展示ALB节点的运行状态、流量、性能、配置、日志等。 |
# 产品功能架构
ALB的架构设计为高效、稳定且易于扩展,它使用多进程模型来处理网络请求,确保了高性能和高并发能力。通过模块化的设计,ALB能够灵活地添加新功能,满足不同业务场景的需求。ALB架构支持从简单的Web服务器到复杂的负载均衡和反向代理等多种网络服务,同时保证了操作的简便性和服务的可靠性。
# 主要功能
# 服务代理
| 功能 | 功能说明 |
|---|---|
| 静态文件服务 | 支持静态文件缓存、断点续传等功能,实现快速、低延迟的静态内容分发。 |
| 反向代理 | 支持HTTP/HTTPS(1、2和3)、FastCGI、Websocket、gRPC、TCP、UDP等多种协议代理。 |
| 邮件代理 | 支持邮件协议,实现邮件代理功能。 |
| 协议支持 | 支持IPV4和IPV6协议。 |
# 负载均衡
| 功能 | 功能说明 |
|---|---|
| 轮询 | 每个请求按时间顺序逐一分配到不同的后端服务器。 |
| 带权轮询 | 根据节点权重生成节点流量比例,用于后端服务器性能不均的情况。 |
| 最小连接数 | 选择上游服务节点连接数最少的一个节点作为转发节点。 |
| sticky(会话粘滞) | 通过维护session的客户端关联性,确保来自同一客户端的请求在会话期间始终被定向到同一后端服务器,实现 session一致性。 |
| IP地址哈希 | 根据IP地址进行哈希计算获得目标节点,保证每个访客固定访问一个后端服务器,可解决session一致性问题。 |
# 流量管理
| 功能 | 功能描述 |
|---|---|
| 限制请求速度 | 通过限制请求速度,达到防止上游服务同时被过多的请求淹没。 |
| 限制请求次数 | 限制客户端单位时间内的请求次数。 |
| 限制并发 | 限制客户端单位时间允许的连接数。 |
# 安全
| 功能 | 功能说明 |
|---|---|
| HTTPS协议 | 支持HTTP/HTTPS协议,可保障客户端和服务端通信安全可信。 |
| 国密SSL | 支持国密SSL双向认证通信,可保障客户端和服务端通信安全可信。 |
| 访问控制 | 支持IP访问控制、IP黑白名单、referer黑白名单、静态资源防盗链等功能。 |
| 三员权限 | ALB管控台支持三员权限管理,支持角色和权限管理,支持审计日志查看。 |
# 产品优势
兼容Nginx
ALB标准版支持Nginx的配置文件格式,可快速实现Nginx配置文件的迁移。
易用的Web管控台
ALB提供集成化Web管理控制台,支持节点运行状态监控、流量性能数据展示、三员权限管理、审计日志查看及配置文件和SSL证书统一管理。
适配国产环境
ALB标准版支持在国产软硬件系统上安全稳定高效运行,其中硬件架构支持鲲鹏、龙芯、兆芯、海光等平台,操作系统支持统信UOS、麒麟、OpenEuler、Deepin、中科方德等。
国密SSL
ALB标准版支持国密SSL双向认证通信,可保障客户端和服务端通信安全可信。
Lua脚本扩展
ALB标准版支持支持使用Lua脚本扩展,可满足客户对流量接入、流量处理、反向代理和日志记录等业务的定制化开发。
# 应用场景
统一流量出入口
ALB标准版支持访问流量的安全验证、限流与限速和负载均衡,可支撑复杂应用平台出入流量的统一安全验证和管理、访问流量的统计与审计,从而实现从入口对后端访问流量的统一管控。
网站动静分离
ALB标准版支持本地静态资源代理与后端服务的反向代理,支撑动静分离架构应用的负载均衡,提高用户访问静态代码或资源的速度,降低对后台服务访问的压力。
静态资源托管
ALB标准版拥有静态文件服务功能,支持静态文件缓存、断点续传等功能,实现快速、低延迟的静态内容分发,如图片、视频和网页文件,帮助客户搭建高效的内容发布平台,达成网站访问速度提升和带宽成本节省的目的。
流量控制与访问策略定制
ALB标准版支持限流线速功能,可实现对访问请求的精准控制,如连接数限制和请求速率限制,帮助客户有效应对突发流量,防止服务过载,达成稳定服务质量和防DDoS攻击的目的。
安全反向代理
ALB标准版支持国密SSL双向认证通信,支持包括http、https在内的多种协议,可保障代理多协议安全代理。
# 系统软硬件要求
# 硬件环境
| ALB版本 | 硬件平台 | CPU架构 | 内存大小 | 存储空间 |
|---|---|---|---|---|
| 企业版 | 鲲鹏 | ARM | 4GB+ | 50GB+ |
| 企业版 | 兆芯 | x86 | 4GB+ | 50GB+ |
| 企业版 | 海光 | x86 | 4GB+ | 50GB+ |
| 企业版 | 飞腾 | ARM | 4GB+ | 50GB+ |
| 标准版 | 鲲鹏 | ARM | 4GB+ | 50GB+ |
| 标准版 | 兆芯 | x86 | 4GB+ | 50GB+ |
| 标准版 | 海光 | x86 | 4GB+ | 50GB+ |
| 标准版 | 飞腾 | ARM | 4GB+ | 50GB+ |
| 标准版 | 龙芯 | mips64、loongarch | 4GB+ | 50GB+ |
| 标准版 | 申威 | sw64 | 4GB+ | 50GB+ |
注:以上为最低硬件标准。
# 软件环境
- 操作系统:UOS、Kylin、Deepin、中科方德、Centos、Ubuntu
# 性能规格
| ALB版本 | 硬件规格 | 并发 |
|---|---|---|
| 企业版/标准版 | CPU:4核,内存:8G | 2万以内 |
| 企业版/标准版 | CPU:8核,内存:16G | 5万以内 |
| 企业版/标准版 | CPU:8核,内存:32G | 10万以内 |
| 企业版/标准版 | CPU:16核,内存:48G | 50万以内 |
| 企业版/标准版 | CPU:32核,内存:64G | 100万以内 |