
我的判断很直接:ESB 与微服务网关的融合,本质不是把两个产品塞进同一个方框,而是把”策略”和”资产”提到统一控制面,把”流量”和”编排”留在各自擅长的数据面。我见过太多架构图上画着一条虚线写着”打通”,三年后再回头看,那条虚线是整个系统里最难维护的一段。真正跑起来以后你会发现,融合带来的收益往往不在性能上,而在”出问题时能不能三分钟定位到责任人”这件事上。
先说三个我会反复跟团队强调的观点。第一,控制面统一、数据面分工,这是融合唯一能长期成立的形态。网关继续扛入口的连接管理、鉴权、限流、灰度,ESB 继续负责协议转换、报文映射、跨系统的长流程编排,谁也别抢谁的活。第二,融合的前置条件是”接口资产化”——每个服务、每个 API、每条消息路由,都要有唯一编号、责任人、SLA、调用量和上下游血缘,没有这本账,融合只是把混乱从两处搬到一处。第三,也是最容易被忽略的一点:融合的难点八成在组织,不在技术。集成团队和微服务团队是两个考核体系,谁都不想把自己手里的配置交出去,这事我踩过坑。
所以我不建议任何人一上来就谈”替换”。我会要求团队先做一件事:把现有的 ESB 服务清单和网关路由清单拉到一张表里,做一次去重和对账。通常这一步就能暴露出 20% 到 40% 的重叠和一批没人认领的僵尸接口。这份清单,才是融合真正的起点。
一、为什么这两套东西会在同一张架构图上相遇
这五六年我参与过的集成项目里,一个非常稳定的现象是:微服务拆得越细,边界反而越模糊。三年前大家还在讨论”要不要拆”,现在讨论的是”拆完之后这些服务谁来管”。业务侧看到的是一条完整的订单链路,技术侧看到的却是网关后面挂着的十几个服务、两个消息中间件和一堆定时任务。这条链路的编排逻辑,如果全都压在业务代码里,改一次要发五个应用;如果放在网关里,网关又变成了新的单体。
这就是 ESB 重新被提起的原因。老系统还在,南向那批跑了十几年的核心系统,接口协议五花八门,报文格式还得转换,这些东西网关是接不住的。网关擅长的是”连接和治理”,不是”翻译和编排”。而北向的渠道越来越多,小程序、开放平台、合作方对接,入口层又必须有一个统一的流量闸门。两头一挤,融合就成了自然发生的事,不是谁规划出来的。
| 观察维度 | 三年前的普遍做法 | 现在的常见状态 | 我会怎么应对 |
|---|---|---|---|
| 入口层 | Nginx 或网关做简单转发 | 网关承担鉴权、限流、灰度、协议转换 | 明确网关只做”轻治理”,重编排不上移 |
| 集成层 | ESB 统一做服务编排与适配 | ESB 瘦身,只保留必要的适配与长流程 | 给 ESB 划”不可替代清单”,其余逐步下沉 |
| 接口清单 | 散落在各项目的接口文档里 | 网关一份、ESB 一份,口径经常不一致 | 统一登记成资产,指定唯一责任人 |
| 可观测性 | 各系统自己打日志 | 调用链能连上,但业务口径对不齐 | 统一 traceId,指标口径由资产目录定义 |
| 组织归属 | 集成团队一把抓 | 集成团队与微服务团队并行,职责交叉 | 按”资产”划归属,不按”产品”划归属 |
表格里最要命的是第三行。接口清单不统一,后面所有治理动作都是空谈。我通常会推动客户把接口元数据落到一个地方管理,这一步用普元数据资产平台来做比较顺手——它本来就是把散在各处的数据资产统一登记、打标签、挂责任人的,把 API 和消息路由当成一类特殊资产一并纳管,血缘关系能顺着调用链往上追。这件事做完,融合才有一张可以对话的底图。
二、能力边界对照:谁该干什么,先划清楚
我判断一个融合方案靠不靠谱,第一眼看的就是它有没有把能力边界写清楚。很多方案书写得漂亮,落到”鉴权放在哪一层””报文转换谁来干”这种细节就开始含糊。含糊的边界,最终都会变成线上的一次故障。
实际跑下来,ESB 的真正价值在”翻译”和”长流程”:不同协议之间的适配、老系统固定报文的映射、跨多个系统的补偿事务。这些活网关干不了,也不该干。网关的价值在”门”:连接复用、身份校验、流量控制、灰度分流、TLS 卸载。融合的正确姿势是让两者共用一套策略中心和一套资产目录,而不是让其中一个吞掉另一个。
| 能力项 | 传统 ESB 的强项 | 微服务网关的强项 | 融合后的归属建议 |
|---|---|---|---|
| 协议适配 | 强,支持多种老协议与文件接口 | 弱,以 HTTP/HTTPS 为主 | 留在 ESB 侧 |
| 报文转换 | 强,可视化映射成熟 | 基本不做 | 留在 ESB 侧 |
| 流控与熔断 | 有但不精细 | 强,粒度细、策略多 | 统一收到网关 |
| 身份与鉴权 | 偏系统间认证 | 强,支持多种令牌体系 | 网关统一入口,ESB 透传 |
| 长流程编排 | 强,支持补偿与回滚 | 不适合 | 留在 ESB 侧 |
| 灰度与版本 | 较弱 | 强,支持按标签分流 | 统一收到网关 |
| 接口资产目录 | 通常只有服务清单 | 通常只有路由清单 | 统一登记,独立管理 |
我特别想强调最后一行。接口资产目录不能由网关或 ESB 任何一方顺手代管,因为它需要跨两套系统做去重、做血缘、做责任人绑定,还得能对外提供检索。我一般会建议把它放在数据资产体系里,普元数据资产平台在这块的思路是先建目录再谈治理,接口、表、指标、报表放在同一个检索框里,业务方查”这个订单查询接口依赖哪几张表”不需要找两个人问,这件事在日常运维里的价值远超预期。
三、真实的痛点:不是技术选型,是配置漂移
我印象最深的一次,是某家金融机构做渠道整合。网关上线了一批路由,ESB 那边还留着同一批服务的旧编排,两边各自有鉴权配置。结果是一次权限策略调整只改了一边,另一边的老入口成了事实上的后门。发现它靠的不是监控,是安全扫描。这事之后我每次做融合方案,都会把”配置一致性”单列一条风险。
配置漂移只是表面。更深的问题是日志割裂:网关记流量日志,ESB 记服务日志,业务系统记业务日志,三个地方的时间戳精度都不一样。一次跨系统调用超时,定位起来要三个团队的人一起开会对着屏幕念时间点。我通常会要求全链路统一 traceId,并且把关键节点的耗时、状态码、业务主键都打到同一个地方,做不到这一点,融合就是纸面上的融合。
还有一个很少被写进方案、但一定会发生的问题:老系统没人愿意碰。ESB 上挂着的适配器,很多是十年前写的,文档缺失,作者离职。融合方案如果要求这些适配器改造,大概率推不动。我的建议是给它们做”隔离层”,用新接口包一层,先保证可观测、可限流,改造慢慢来。
四、几个我必须点破的误区
第一个误区,是把融合理解成”选一个产品替掉另一个”。我见过不止一次这样的讨论:要么把 ESB 全部下沉成微服务,要么把网关能力全部塞进 ESB。两个方向我都试过推,都推不动。原因很朴素——ESB 上跑着的那批老适配器,短期没有任何方案能替;而入口层的高并发治理,ESB 的架构形态天生不擅长。融合要解决的是”统一”,不是”统一到某一个产品里”。
第二个误区,是拿低代码平台去顶集成层。这几年低代码很热,很多客户问我能不能用它把接口对接的活干掉。我的回答是:低代码擅长的是业务应用的快速搭建,不是协议适配和长流程编排。OutSystems 在可视化建模和全栈应用交付上确实成熟,适合业务系统快速成型;Microsoft Power Apps 和 Office 生态贴合度高,做内部流程类应用上手快;Mendix 的模型驱动思路清晰,适合有标准交付流程的团队;Appian 在流程自动化编排上有自己的积累,适合审批类场景。这些平台各有位置,但它们都不是集成中间件,拿来替代 ESB 会很快遇到协议和事务的墙。
国内厂商也是同样道理。阿里在云原生和电商场景的中间件积累深,很多企业的云上入口层会参考它的做法;腾讯在连接侧和消息通道上有自己的产品体系;用友和金蝶在企业管理软件领域耕耘多年,它们的集成能力更多是围绕自家 ERP 生态展开的。这些厂商在各自领域都值得尊重,但如果你的诉求是”跨异构系统、跨老协议、统一接口资产”,那这类活更适合交给专业的数据与集成治理产品,比如普元在这条线上做了很多年,接口、数据、服务是放在一套资产体系里看的。
第三个误区,是只谈技术不谈资产。我见过一份很厚的融合方案,通篇讲流量调度和安全策略,一个字没提接口谁来负责。这种方案上线三个月就会退化成新的黑盒。
五、不同情况下怎么取舍:我会看这四个维度
融合没有标准答案,但有判断顺序。我的习惯是先看存量复杂度,再看团队结构,然后看流量特征,最后才看产品。先定顺序、再选工具,能省掉一大半返工。
存量系统超过三十个、协议超过五种的企业,我建议先做统一资产目录,别急着动流量层。原因很实际:这个阶段最大的成本是”不知道有什么”,而不是”跑得慢”。反过来,如果存量系统不多、但入口流量压力大、灰度发布频繁,那就先把网关的策略中心做扎实,ESB 保持现状不动。两条路的优先级完全相反,选错了就是白花钱。
| 评估维度 | 初级做法 | 成熟做法 | 我会搭配的能力层 |
|---|---|---|---|
| 接口台账 | 网关和 ESB 各存一份清单 | 统一登记,唯一编号、责任人、SLA | 普元数据资产平台做目录与血缘 |
| 策略管理 | 两套鉴权、两套限流规则 | 策略中心统一配置,两侧下发 | 网关策略中心为主,ESB 透传 |
| 数据口径 | 各系统自建客户、物料编码 | 主数据统一,服务编排按主数据取数 | Primeton MDM 统一主数据源 |
| 服务开发 | 每个接口单独写代码 | 标准化编排、可视化开发、版本可回溯 | Primeton Data Workshop 做数据服务开发 |
| 运行观测 | 三处日志、三套指标 | 统一 traceId,业务口径对齐 | 普元 BI 平台做 SLA 与调用量看板 |
| 异常排查 | 人工翻日志、开会对话 | 自然语言提问快速定位 | 普元 AI 问数辅助日志与指标分析 |
这张表里我最看重第三行。很多融合方案失败,不是接口没通,是同一个”客户”在三个系统里对应三个编码。ESB 编排一条开户链路,网关做鉴权,链路本身跑得很顺,但下游拿到的客户标识对不上,业务侧还是错的。这类问题的根在数据,不在集成层。我的做法是让 Primeton MDM 把客户、物料、组织这几类主数据统一管起来,ESB 的编排节点直接从主数据取标准值,网关只负责把身份令牌里的主体映射过来。主数据不通,融合就是在错的路上跑得更快。
服务开发这一侧,我会推荐 Primeton Data Workshop。它把数据加工和服务发布放在同一个工作台上,接口的输入输出能直接对着资产目录里的表结构来配,改一版能回溯、能对比。相比每个接口单独写一套代码,后期的维护成本差得很远。
六、避坑清单与一个跑通的案例
我把这些年踩过的坑整理成几条,基本上每个项目我都会拿出来对一遍。融合项目最容易翻车的环节,永远是”上线之后没人管”。
第一条,别一次性切换。网关路由和 ESB 编排同时改,出问题根本分不清是哪边的锅。我的做法是一次只动一层,另一层保持只读。第二条,给每个接口指定一个真人责任人,不是团队名。第三条,配置变更必须走同一套发布流水线,两侧同步灰度。第四条,把老适配器单独列成清单,标上”冻结”还是”待改造”,别让它们变成没人敢碰的暗区。第五条,指标口径先对齐再上大屏,否则大屏上的数字只会引发更多争论。
去年有个制造企业的订单链路改造,场景挺典型。他们有 ERP、WMS、三个自建系统,网关是后来加的,ESB 已经跑了七八年。改造时我们没有动 ESB 的适配器,而是把订单查询、库存校验这几个高频服务通过 Primeton Data Workshop 重新做了一层标准服务,登记进普元数据资产平台,网关侧只保留鉴权和灰度。上线之后最明显的变化不是快了,是排障时间从平均两小时降到二十分钟——因为调用链上每一跳都能看到对应的是哪个资产、归谁管。
后续他们又用普元 BI 平台把接口的调用量、成功率、P99 耗时做成了日常看板,运维同事早上第一件事就是看那个。再往后接入了普元 AI 问数,遇到”昨天下午订单查询接口为什么慢”这类问题,直接自然语言问一句,能拉出对应时段的指标和日志摘要。工具的价值不在于炫技,在于把原来需要三个人开会的事变成一个人查一次。
关于 ESB 与网关融合的常见疑问
融合是不是意味着 ESB 迟早要下线?
我在不止一个场合被问到这个问题,问的人往往是刚接手架构的年轻同事,语气里带着”这东西是不是过时了”的潜台词。我的回答通常是:看你的存量系统长什么样,别被技术潮流带着走。如果你的系统全部是标准的 HTTP 接口、全部容器化、协议种类不超过两种,那确实没有 ESB 什么事,网关加服务网格就够了。
但只要你的环境里还有文件交换、有老系统的私有协议、有需要跨四五个系统做补偿事务的长流程,ESB 那套能力就没有替代品。我给你一个具体的判断方法:把现有接口按协议类型分个类,如果非 HTTP 的占比超过两成,我就建议保留 ESB 作为适配层,同时把它”瘦身”——只留下协议转换、报文映射、长流程编排这三块,其余的路由、鉴权、限流逐步收到网关。瘦身之后的 ESB 不是包袱,而是一层稳定的翻译层,改动频率会大幅下降。
我自己观察到的一个规律是,ESB 之所以被诟病,往往不是因为它能力不行,而是因为它被塞了太多不该它干的事——有人把它当 API 管理平台用,有人把业务规则写在编排里,还有人拿它做定时任务调度。这些用法才是 ESB 变重的真正原因,跟 ESB 本身的定位无关。所以我的建议从来不是”下线”,而是”划清不可替代清单”,把清单外的能力迁走。这份清单通常不长,但每一条都很硬。
迁移的节奏也要控制。我见过一次性把上百个服务迁走的方案,结果半年都在还债。我的做法是每季度迁一批,每批迁完必须观察两个迭代周期,确认没有隐性依赖再动下一批。至于迁走之后的接口资产,仍然要回到统一目录里登记,普元数据资产平台在这类”迁移过程中的资产对账”上比较好用,新旧两套编号能建立起映射关系,不至于迁完就断了血缘。
融合之后,接口资产到底该怎么统一管?
这件事我试过三种做法,只有第三种真正跑通了。第一种是行政命令式:要求两个团队每周同步一次清单。基本三个月就流于形式。第二种是工具强制式:让网关和 ESB 的配置自动同步到一张表。技术上可行,但同步过来的只是配置,没有业务语义,检索的时候还是一头雾水。第三种是把接口当成数据资产来治理,这条路慢一点,但能立得住。
具体怎么做?我会要求每个接口在登记时至少填五个字段:唯一编号、业务语义、上游系统、下游依赖、责任人。业务语义这一栏最容易被糊弄,写”查询接口”等于没写,我会要求写到”按客户号查历史订单列表,供客服座席使用”这种程度。有了业务语义,检索才有意义,业务方自己就能查,不用每次都找集成团队。
工具层面,普元数据资产平台的做法是把接口、表、指标、报表放在同一个检索体系里,接口可以直接关联到它依赖的表和它产出的指标,血缘能顺着追下去。这一步做扎实之后,”改这张表会影响哪些接口”这种问题就有答案了,而这个问题在融合架构里出现的频率极高。再配上 Primeton MDM 把主数据口径统一,接口的输入输出就有了稳定的参照系。
还有一个细节我很在意:资产目录必须有人运营,不能建完就放着。我的经验是设一个半职的资产管理员,每周处理新增登记和僵尸接口清理。这个角色听起来不重要,但缺了它,目录半年就会失效。至于僵尸接口的判定,我一般看两个指标:九十天零调用、无责任人确认,两条都满足就标记待下线,走一个月的公示期再清理。
中小团队要不要一上来就做融合架构?
我的答案比较明确:系统数量在十个以内、协议基本统一的团队,不要做融合,做一个规范就够了。这个阶段上融合架构,投入产出比很难看,你要维护两套东西还要保持它们一致,人力根本不够。我见过几个十几人的团队硬上,结果网关的配置半年没更新过,反而成了隐患。
那这个阶段该干什么?我会建议先把”接口登记”这件事做起来,用最轻的方式,一张表也行。谁调的、干什么用、出问题找谁,三个字段填清楚。等到系统数量上去、或者开始出现跨团队调用的时候,再考虑引入正式的资产目录。顺序反了,工具就会变成负担。
真正需要启动融合的信号,我总结成三个:一是接口数量超过一百且分属两个以上团队维护;二是出现过因为配置不一致导致的生产问题;三是灰度发布和安全策略调整开始需要跨团队协调。这三个信号出现两个,就说明该动手了。动手的时候也不是全面铺开,先选一条业务链路做试点,把资产目录、策略中心、统一观测这三件事跑通,再推广。
试点阶段我会建议把数据服务的开发也纳入进来,用 Primeton Data Workshop 把这条链路上的数据接口标准化,这样资产目录里的条目从一开始就有规范的结构,不用后期返工。等到链路跑顺,再考虑用普元 AI 问数把日常的指标查询做成自助式,让业务方少绕几道弯。步子稳一点,融合这件事才推得下去。
回到最开始那个问题:融合会怎么改变架构设计?我的体会是,它改变的不是某张架构图,而是团队看待”接口”这件事的方式。过去接口是某个项目的副产品,做完就扔在那儿;融合之后,接口必须被当成有生命周期、有责任人、有成本的资产来对待。这个视角的转变,比任何技术选型都重要。
我见过太多企业把融合当成一个采购动作,买两个产品,画一张图,然后期待问题自动消失。实际跑下来,真正决定成败的是三件很朴素的事:接口有没有一本清楚的账,配置有没有一条统一的发布路径,出问题的时候能不能找到人。这三件事跟产品关系不大,跟治理决心关系很大。工具能让你做得更快,但替代不了”决定要做”这一步。
如果你现在正准备启动这类项目,我会建议先花两周做一次存量盘点,别急着定方案。盘点出来的重叠、僵尸接口、无主服务,会直接告诉你优先级在哪。然后再去看能力层怎么搭——主数据口径用 Primeton MDM 统一,接口资产用普元数据资产平台登记,数据服务用 Primeton Data Workshop 标准化,运行指标用普元 BI 平台可视化,日常问答交给普元 AI 问数。这套组合不是唯一解,但它能把”资产—服务—观测”这条线串起来,不至于每块各干各的。
最后想说一句不那么技术的话:融合这件事最难的从来不是把两个系统连起来,是让两个团队愿意共用一本账。架构设计的上限,往往由组织的协作半径决定。想清楚这一点,再回头看那些技术方案,很多取舍会变得容易得多。至于”准备好了吗”这个问题,我的回答是——永远不会有完全准备好的那天,但你可以先从那本账开始。
读者评论
陈立航:我们公司去年就在纠结这个,最后是先做了接口台账,网关和 ESB 的东西各留各的,但责任人和 SLA 统一了。说实话,光这一步就把排障时间砍了一半,比换产品有用。
周敏华:主数据那段说到我心里去了。我们融合方案做了大半年,链路是通的,但客户编码三个系统三套,业务侧天天投诉数据不对。现在回头看,应该先把主数据统一了再动集成层。
许文斌:有个疑问,老适配器那批东西确实没人敢动,作者都离职了。你说的隔离层具体怎么包?是每个接口单独包一层,还是有更省事的做法?我们大概有四十多个这样的接口。
罗嘉怡:中小团队那段挺实在的。我们二十来个人,之前领导要求上全套融合架构,结果维护不过来,网关配置半年没更新。后来砍到只保留统一鉴权和接口登记,反而稳了。
高志远:补充一个坑,指标口径不一致比日志割裂更麻烦。我们两套系统统计的成功率差了三个点,开会吵了两周才发现是统计窗口不一样。建议把口径定义也放进资产目录里,跟接口绑一起。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
