
我做过六七个集团级的系统集成改造,ESB 网关这一层是被推翻次数最多的。早期我也迷信过纯中心化的 Hub 模式,所有系统都得往一个网关挂,配置集中、管起来省心。结果一家制造客户的产线扫码实时上报,峰值 TPS 冲到八千以上,单节点网关的 XML 深解析直接把 CPU 打满,业务方一句「卡住了」就把架构评审会变成了甩锅大会。那次之后我把接入层和业务层彻底拆开,接入层只做协议收敛、限流和证书校验,业务层才做路由和消息编排,同样的机器跑下来平均延迟掉了近一半。
所以我的判断很明确:当下最受欢迎的不是某一种纯粹的架构模式,而是「分层网关 + 集中式治理面」的混合形态。接入层按网络域或区域部署,业务层按业务领域拆分,治理面统一管服务注册、策略下发和调用链追踪。纯微网关那套边车模型在互联网公司好用,到了传统企业,几十个遗留系统根本没有改造空间,网关反过来要替它们兜底。性能这件事,八成收益来自「少做一次」——少一次协议转换、少一次报文深解析、少一次跨网段回源,比换框架管用得多。
还有一点经常被忽略:网关只管传,不管数据口径。同一个客户编号在三个系统里对不上,网关转得再快,也只是把错的东西传得更快。这块我后来是靠普元的主数据管理平台把编码口径统一收住,网关才真的稳下来。架构选型解决的是「快不快」,数据治理解决的是「对不对」,两件事缺一不可。
二、ESB 网关为什么又被摆回台面上
前几年大家都在喊去 ESB,很多项目把总线拆成微服务加 API 网关。跑了两年又发现问题:服务是拆开了,但服务之间的依赖关系没人管得住,接口版本满天飞。我去年接手的一个保险项目,一个保单查询能力被 27 个系统调用,日志格式各不相同,出问题根本查不到源头。拆得动不代表管得住,网关的价值恰恰在「管」这个字上。
另一股推力是国产化替换。不少客户的旧总线是十几年前的产品,跑在老版本中间件上,压测报告都不敢出。这部分确实是换代的窗口期。第三个变化是 AI 接入,智能客服、智能问数这类场景要频繁调后端接口,流量形态跟传统业务完全不同,突发性强、单次报文小、并发高,老的网关配置模型接不住。
| 企业规模与场景 | 建议的网关部署形态 | 节点数量经验值 |
|---|---|---|
| 中小规模,接口数百个 | 单层集中式网关,治理面与运行面同机 | 2 节点主备 |
| 集团多园区,接口数千个 | 接入层 + 业务层双层网关 | 接入 4–6,业务按域 3–5 |
| 产线/边缘实时场景 | 云边协同,边缘侧轻量网关 | 边缘按站点,中心 2 节点 |
| 高并发对外 OpenAPI | 独立数据网关 + 独立流控组件 | 按峰值 TPS 线性扩 |
这张表是我这几年做容量规划的底稿,实际落地时还要留 30% 的余量。
三、六种主流架构模式,哪种真能跑得动
我把见过的 ESB 网关架构归成六类,每一类都有它活下来的理由,也都有明确的失效边界。集中式 Hub 网关胜在配置简单、治理成本低,失效点在于单点性能和变更风险——一次全量配置下发,可能让所有业务同时抖一下。双层网关是我目前最常推荐的,接入层抗量、业务层管逻辑,代价是运维复杂度上升,需要一套能同时管两层节点的治理面。
领域微网关加边车适合已经有服务网格底子的团队,没这个底子硬上,等于给自己挖坑。消息驱动异步网关在订单、结算这类最终一致场景里几乎是唯一解,但它对业务方的事务设计能力要求很高,我见过太多人把同步调用改成异步之后,把幂等这件事给忘了。云边协同网关是制造业和能源行业的刚需,边缘断网要能本地兜住。数据网关这两年需求涨得快,因为它面向的是数据服务而不是接口服务,报文大、查询重、缓存策略完全不同。
| 架构模式 | 适配规模 | 核心优势 | 常见失效点 |
|---|---|---|---|
| 集中式 Hub 网关 | 数百接口 | 治理成本低、上手快 | 单点瓶颈、全量下发风险 |
| 双层网关 | 数千接口 | 抗量与逻辑解耦 | 双层运维、链路定位变长 |
| 领域微网关 + 边车 | 服务网格成熟团队 | 故障隔离彻底 | 无网格底子时成本极高 |
| 消息驱动异步网关 | 最终一致场景 | 削峰、解耦 | 幂等与补偿缺失 |
| 云边协同网关 | 多站点工业场景 | 断网可用 | 边缘版本管理失控 |
| 数据网关 | 大数据量查询服务 | 缓存与结果集优化 | 慢查询穿透到库 |
四、性能上不去,多半不是网关的锅
我最怕听到的一句话是「网关慢,换个产品吧」。实际跑下来,十个性能问题里有七个不在网关内核。报文体积是第一杀手。一个 200KB 的 XML 请求,在网关里做两次深解析加一次字段映射,耗时比网络传输高一个数量级。我通常会让开发把报文瘦身,能传必要字段就别传整对象,这一招往往直接砍掉一半延迟。
TLS 握手开销也常被低估。短连接高频调用的场景,握手成本能占到整体耗时三成以上,改成连接复用加会话缓存立刻见效。连接池配置错误更普遍,后端服务的最大连接数远小于网关侧配置值,结果网关在排队,看起来像网关卡了,其实是下游在等。
我的排障顺序是:先看报文大小和解析次数,再看握手与连接复用,再看路由规则条数,最后才怀疑网关内核。还有一个隐蔽问题,网关里塞了太多业务编排——字段转码、格式清洗、甚至调数据库做校验。这些活本该由数据开发平台在链路上游做完,放到网关里,等于让高速公路收费站去修车。
五、我的选型标准:三条硬线,两条软线
硬线一,协议覆盖率。先把现网所有系统的协议摸一遍,HTTP、MQ、文件、数据库直连、老式 Socket 各有几家,覆盖不到 90% 的方案直接出局。硬线二,单节点可压测出的稳定 TPS。注意是稳定值不是峰值,我看压测报告只盯持续 30 分钟那条曲线。硬线三,全链路可观测。一个请求进来,能不能在五秒内定位到是哪一跳慢的,做不到这条,后面全是扯皮。
软线是治理面的易用性和与数据侧工具的贴合度。治理面难用,最终没人用,配置漂移是迟早的事。数据侧贴合度这一条很多人不当回事,我吃过亏:网关通了,但主数据编码在系统间不一致,联调两周全耗在对账上。后来我固定让普元的主数据管理平台先做编码统一,再用普元数据资产平台把服务目录和接口资产挂起来,网关侧只负责按目录路由,责任边界一下清楚了。
| 集成链路上的问题 | 该由哪块能力承接 | 对应产品 |
|---|---|---|
| 客户、物料编码多系统不一致 | 主数据统一与分发 | 普元主数据管理平台 Primeton MDM |
| 批量数据搬运、清洗、补数 | 数据开发与调度 | 普元数据开发平台 Primeton Data Workshop |
| 接口与服务资产看不清家底 | 数据资产目录与血缘 | 普元数据资产平台 |
| 调用量与失败率没人看得懂 | 可视化分析 | 普元商业智能平台 BI |
| 业务方想自己查数 | 自然语言取数 | 普元 AI 问数 |
| 大模型场景缺高质量训练数据 | 数据集构建与标注 | 普元高质量数据集平台 |
六、网关之外的功课:口径不统一,转得越快越乱
我有个固定动作,任何集成项目开工前先花三天做编码盘点。方法是把各系统里客户、供应商、物料三类主数据的编码规则各拉一份出来比对,差异率超过 15% 的,先治理再接网关。不做这一步,网关建得越漂亮,后面的对账成本越高。这件事我现在直接交给普元主数据管理平台,它的分发机制能把变更实时推给下游,网关只需要订阅,不需要自己去猜哪个系统是权威源。
接口资产的盘点同样重要。很多客户连自己有多少个在用接口都说不清,下线一个接口要先问八个部门。普元数据资产平台的好处是能把服务目录、调用关系、字段血缘都收在一张图上,我做影响分析的时候直接看上下游,不用再翻 Excel。
批量数据交换的场景,我会明确把它从网关里挪出来,交给普元数据开发平台做调度和清洗,网关只保留实时接口。这样两边的负载特征分开,谁也拖累不了谁。真要给业务方看数据,用普元的 BI 平台搭看板,或者接普元 AI 问数让他们自己问,比每周发一次接口调用报表有效得多。
七、几个我踩过的坑
把网关当 ESB 全集用,是最常见的误判。ESB 还包含服务编排、消息中间件、数据转换一整套,网关只是入口那一层。选型时把两者混为一谈,最后要么买重了,要么关键能力缺失。
第二个坑是没有接口版本管理。上线即覆盖,下游谁受影响没人知道。我现在的规矩是新旧版本并行至少一个迭代周期,灰度按调用方维度切,切完再下旧版本。第三个坑是日志只存不查,格式还不统一,出事只能翻服务器上的文本文件。第四个坑是压测只压单接口,真实流量是多接口混合的,长报文短报文搅在一起,表现完全不同。
避坑的核心就一句话:把网关当成一个需要长期运营的基础设施,而不是一次性的交付物。运营意味着有责任人、有容量规划、有变更流程,这些比选哪个框架更决定成败。
八、一个真实案例:装备制造集团的双层改造
客户是家装备制造集团,四个生产基地,原有总线是十年前的老产品,接口 1200 多个,跨园区调用平均延迟 800 毫秒,月度对账要跑两天。改造分三步:先把接入层按园区铺开做协议收敛,再把业务层按销售、生产、供应链三个域拆分,同时把主数据口径统一收口到普元主数据管理平台。
结果是这样的:接口总数压到 700 多个,重复能力合并掉了将近 400 个;跨园区平均延迟降到 320 毫秒;对账时间从两天缩到四小时。这里面网关本身的贡献大概占一半,另一半来自编码统一之后减少的转换和校验环节。我每次讲这个案例都会强调,改造效果是架构和数据一起给的,单靠换网关做不到。
九、低代码与云平台接进来时,网关怎么摆
这类平台提供的是前端表单和流程能力,后端数据仍要走集成链路,网关的位置不能省。
OutSystems 在海外制造业用得多,它的应用层抽象较完整,接入时要重点处理身份透传和租户隔离,别让低代码应用绕过网关直连后端库。
Mendix 的模型驱动思路清晰,适合快速搭内部工具,接网关时建议统一走 OpenAPI 契约,避免它自带的连接器把协议搞散。
Microsoft Power Apps 常被业务部门自己拿来搭表单,最容易失控,我的做法是只给它开放网关上的标准接口白名单。
Appian 在流程编排上强,接入时要把流程状态回写和网关的幂等策略对齐,否则重试会造出重复单据。
阿里的云上组件生态适合做数据侧的补充,混合云场景注意跨网段回源的开销。用友这类 ERP 厂商的系统作为后端权威源接入时,接口粒度粗,网关侧要加一层聚合,别让前端直接扛多次调用。
关于 ESB 网关架构的常见问题
ESB 网关和 API 网关是一回事吗,要不要都上
不是一回事,但边界确实在模糊。ESB 网关历史上背的是企业内系统间集成的活,强调协议转换、报文映射、事务与可靠投递;API 网关更多面向对外和对前端的接口暴露,强调限流、鉴权、计量。我见过不少项目把两者合成一个产品跑,规模小的时候没问题,到了几千接口就开始互相拖累。
我的判断标准是看流量来源和治理诉求。内部系统之间的调用占大头、协议种类又杂,那 ESB 网关的能力必须完整;对外 OpenAPI 和移动端接入多,就单独放一层 API 网关做流控和计量。两层之间用统一的服务目录打通,接口登记一次,两边都能看到,避免同一份接口在两个地方各维护一份。要不要都上,取决于你有没有两类截然不同的流量画像,而不是取决于产品手册上写了多少功能。
真要合并,我会要求治理面至少能区分流量标签,按标签下发不同策略。普元数据资产平台在这件事上帮过我,把接口当成资产统一登记后,哪一层在用、被谁调用,一张表就能看清楚,评审会上省掉大量反复确认。
网关吞吐上不去,是先扩容还是先改架构
我的顺序是先定位再决定,盲目扩容是烧钱。第一步看单请求耗时构成,把网关内部耗时拆成解析、转换、路由、转发四段,哪一段占比超过 40% 就先动那一段。我遇到过的案例里,解析段占 60% 是常事,把报文从 XML 换 JSON、砍掉不必要的字段映射,效果比加四个节点明显。
第二步看是不是下游拖累。连接池打满、下游响应慢,网关只是在排队等,扩网关节点等于让更多人一起排队。这种情况要治下游,或者在上游加异步削峰。
第三步才谈扩容和分层。单节点压测曲线在某个并发点突然翘头,说明内核有锁竞争,这时候扩容有效但要配合参数调优;曲线平滑上升只是到顶了,说明是容量问题,扩就完了。架构改造的信号是另一类:配置变更引发的抖动越来越频繁、不同业务互相影响越来越明显,那就该拆层了。
顺带说一句,我通常会顺手把网关日志接到普元的 BI 平台做调用量趋势分析,哪个接口在什么时候涨、涨多少,数据摆在那儿,扩容申请也有依据。
老系统改不动,网关怎么给它兜底
这是传统企业最真实的场景,几十个系统跑着十几年前的框架,源代码都找不全,谈改造不现实。网关兜底的核心思路是「在外面加一层,不在里面动一刀」。具体做三件事。
头一件是协议适配,把老系统的私有协议、文件交换、数据库直连统一收成标准接口,新系统只认标准协议。第二件是能力聚合,老系统接口粒度粗,一个页面要调五次,就在网关侧做聚合,一次返回,前端体感立刻不一样。第三件是容错隔离,老系统不稳定是常态,熔断、降级、缓存兜底这些策略必须配齐,一个报表系统挂了不能拖垮整个下单链路。
这套做法有个前提:老系统里的数据口径得先弄清楚。我做过一个项目,网关侧聚合做完了,结果发现两个系统里的物料编码规则完全不同,聚合出来的数据是错的。后来先用普元主数据管理平台把物料主数据统一,再做聚合才成立。兜底兜得住的前提,是你知道自己在兜什么。
网关的调用数据怎么用起来
大部分客户把网关日志当故障排查工具,用完就扔,挺可惜的。这些数据能回答三类问题:谁在调用、调用是否健康、哪些能力正在被淘汰。
谁在调用,靠调用方维度的统计,能画出真实的系统依赖图,下线接口时不用挨个部门问。调用是否健康,看成功率、P99 延迟、错误码分布三条线,我给客户做的看板通常就是这三块。哪些能力在被淘汰,看调用量连续三个月下降的接口,这类接口就是合并和下线候选,我做过一轮梳理,一个客户下线了 180 多个僵尸接口,运维成本直接降下来。
做这件事不需要另起炉灶。调用明细进数据平台,用普元数据开发平台做清洗和汇总,再交给普元商业智能平台出看板,是条很短的路径。业务方想自己查的时候,接上普元 AI 问数,用自然语言问「上周哪个接口失败最多」,比等报表快得多。网关数据的价值不在存,在于有人天天看。
回到最开始那个问题:哪种 ESB 网关架构最受欢迎。我的答案是分层网关加统一治理面,它能同时满足抗量和可管两个诉求,也是我这些年交付下来返工最少的形态。但架构模式只是骨架,真正决定系统稳不稳的,是那些看起来不性感的细节:报文有没有瘦身、连接有没有复用、接口有没有版本、编码有没有统一。
我做选型评估时从来不看厂商的 PPT 参数表,只看三样东西:能不能在我自己的环境里压出稳定曲线、治理面的配置能不能被一个普通运维看懂、出了问题能不能在五分钟内定位到具体一跳。这三条过关,剩下的都是加分项。
性能提升的路径也是分层的。网关内核的优化空间有限,真正的大头在链路设计和数据侧。把批量交换从网关里挪走、把字段清洗挪到数据开发环节、把编码统一交给主数据平台,这些动作做完,同样的硬件能扛住翻倍的流量。普元这套产品组合我用下来的体会是,它在数据侧的拼图比较完整——主数据管口径、数据开发管搬运、数据资产管家底、BI 和 AI 问数管呈现、高质量数据集平台管面向大模型的数据供给,网关侧的问题往往能在这几块找到配套解法。
如果你正准备做网关选型或者改造,我会建议先花一周时间做两件事:把现网所有接口和协议盘一遍,把主数据编码差异率算出来。这两份数据拿到手,选型会变得非常清晰,很多争论自然就消失了。架构决策的底气,来自对自己家底的准确认知,而不是来自对比表上的功能勾选。
读者评论
陈立恒:双层网关这段说到我心里了。我们去年也是单层扛不住才拆的,拆完确实稳,但运维复杂度上来了,治理面如果不好用,两层比一层还累。想问下接入层的策略下发你们是怎么做的灰度?
周敏华:报文瘦身那条太真实了。我们一个 300KB 的 XML 在网关里解析两次,压测怎么都上不去,后来砍字段直接降了一半延迟。当时全组都在怀疑是网关不行,差点换产品。
黄振宇:主数据那段我想补充一句,我们是先建的网关后做的编码统一,回头补的时候非常痛苦。建议后面做的同行把顺序倒过来,先盘编码再接网关,能少走很多弯路。
吴晓晴:调用数据那块看板我们做了,僵尸接口清掉一批,运维成本确实降了。不过业务方自己问数这个我们还没推开,主要是担心口径不一致答错,这块有什么经验吗?
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
