深度解析ESB网关融合:如何提升企业系统架构的灵活性与可扩展性?这一主题值得深入思考吗?

我参与过六个把 ESB 和 API 网关往一块收的架构评审,规模从三十多个系统到两百多个系统都有。这六年下来,我最大的感受是:ESB 网关融合这件事,八成的人在做技术选型,只有两成的人在做架构治理。选型选错了顶多难受两年,治理没做对,系统照样通,但三年后你会发现没人敢动它。这篇文章我想把这件事掰开讲

ESB网关融合与企业系统架构示意

我参与过六个把 ESB 和 API 网关往一块收的架构评审,规模从三十多个系统到两百多个系统都有。这六年下来,我最大的感受是:ESB 网关融合这件事,八成的人在做技术选型,只有两成的人在做架构治理。选型选错了顶多难受两年,治理没做对,系统照样通,但三年后你会发现没人敢动它。这篇文章我想把这件事掰开讲:融合到底在融合什么,灵活性从哪来,可扩展性又靠什么撑住,哪些看着漂亮的方案其实埋着坑。

先把我的判断摆在前面。ESB 和网关的价值不在”通道”,而在”通道背后的数据契约和服务契约”。通道是最容易被替代的部分——今天换个网关产品,明天接个云原生 API 管理,技术上都办得到。真正难替代的是接口背后那份主数据有没有对齐、那个服务有没有被复用、那条链路的调用关系有没有被记录。我见过太多项目把精力全花在”怎么把流量从 A 转到 B”,结果三个月后接口数量翻了一倍,报障定位从两小时变成两天。所以融合的第一步不是画架构图,是先问清楚:这次收敛要解决的是通信问题,还是数据一致性问题,还是复用问题。三个问题的答案不一样,落地路径完全不一样。

另外一点,灵活性不是”接口随便加”,可扩展性也不是”网关随便横向扩”。真正的灵活性是新增一个业务系统时,不用改已有系统;真正的可扩展性是流量涨十倍时,业务方感知不到。这两个目标都要靠底层的元数据、主数据和接口资产管住。这也是我后面会重点讲普元那几块数据侧能力的原因——不是因为它管网关,而是因为它管网关最头疼的那部分:数据到底长什么样、谁在改、改了影响谁。

我见过的四种融合姿势,其中两种大概率会返工

把市面上做过的方案归归类,其实就四种姿势。第一种是”并存分工”:ESB 管内部系统之间的服务编排,网关管对外暴露和第三方接入,两边各管一段,靠一条明确的边界线隔开。这种最稳,但也最容易变成两套人马、两套规范、两套监控。

第二种是”网关前置”,ESB 往后挪,只做协议转换和遗留系统适配,新业务一律走网关。第三种是”全量 API 化”,把 ESB 上的服务逐个改造成 REST 接口迁到网关,目标是让 ESB 慢慢退役。第四种是”双活并行”,两套都通,靠路由分流,通常出现在改造期不敢停机的时候。

返工率最高的是第四种,是第三种。双活并行听着保险,实际上是两套契约同时维护,半年后没人说得清哪个接口走哪边。全量 API 化的坑在于,很多老系统的服务粒度是按 ESB 编排逻辑设计的,硬拆成细粒度接口,调用链会从一跳变五跳。

融合姿势 典型做法 适配场景 我观察到的返工比例
并存分工 ESB 管内部编排,网关管对外暴露 系统数量多、遗留系统占比高 约 25%,主要返工在规范不统一
网关前置 ESB 后移做协议转换与适配 新业务为主、老系统只需被调用 约 40%,返工多在适配层膨胀
全量 API 化 逐个改造服务并迁移,ESB 逐步退役 系统数量少、服务粒度本身较细 约 55%,返工在调用链拉长
双活并行 两套都通,靠路由策略分流 改造期不能停机的过渡阶段 约 70%,返工在契约两头不一致

我的建议是:能选”并存分工”就别急着做”全量 API 化”。前者是给架构留了一条可回退的路,后者是把所有鸡蛋放进一个新篮子。真要往全量走,前提是先把服务目录和数据契约理清楚,否则你迁过去的不是服务,是一堆没人认领的接口。

通得快和撑得久,是两套完全不同的评价标准

架构评审会上最常听到的一句话是”这个方案能通”。我通常会追问一句:三个月后加一个新系统,需要改几个地方?这个问题往往能让会场安静下来。

通,是功能视角;撑得住,是治理视角。两套标准的差别,不在技术栈,在有没有把”变更成本”当成一等指标。我做过一个粗略统计:同一个业务接口,如果背后主数据是统一的,新增一个消费方的平均改造工时是 4 小时;如果主数据分散在三个系统各有一份,同样的事要 3 天,还得开会确认哪个版本是对的。这就是差距。

评价维度 只求通的做法 撑得久的做法 三年后的差距
接口定义 按调用方需求临时定制 按数据域统一建模后再暴露 接口数量差 3 到 5 倍
主数据 各系统各自维护 统一源头、统一编码规则 对账工时差 10 倍以上
链路可观测 只记网关访问日志 网关、服务、数据加工全链路打通 故障定位从小时级到分钟级
资产沉淀 接口散落在各团队文档里 统一目录、可检索、有责任人 复用率一个天上一个地下

灵活性这个词,说到底就是”变更的时候少改东西”。所以我评审方案时会盯一个数:新增一个消费方,平均要动几个系统。这个数超过 2,方案就有问题,跟你用哪家的网关没关系。

真正的痛点不在网关,在网关背后的那份数据

说个我踩过的坑。有个项目做网关收敛,技术上非常顺利,两周就把流量切过去了。三个月后业务方投诉:同一个供应商,在采购系统叫”XX 科技有限公司”,在财务系统叫”XX科技”,在物流系统叫”XX 科级有限公司”——还是错别字。三套编码,三份地址,对账的时候财务同事手工比对了整整一周。

这就是典型的把集成问题误判成通信问题。ESB 和网关解决的是”能不能调到”,解决不了”调到的数据对不对”。很多企业的 ESB 上跑着几百个接口,真正被复用超过三个消费方的不到两成,剩下的都是点对点直连穿了件马甲。你把这些接口原封不动搬到网关上,只是换了个门牌号。

我会要求团队在做融合之前先做一件事:把接口按数据域归类,看看哪些域的主数据是分裂的。通常一归就露馅——客户、供应商、物料、组织这几类主数据,几乎必然是分裂的。这几类不理顺,网关融合做得再漂亮,也只是把脏数据流通得更快。

另一类痛点是”看不见”。网关有访问日志,ESB 有消息流水,数据加工有任务日志,三份日志谁也不认谁的 ID。一个订单从下单到发货出了问题,你得在三个系统里各查一遍,再靠时间戳手工对齐。我一般会要求在这条链路上打通一个全局的追踪标识,这件事不难,难的是没人牵头。

什么情况下该动手收敛,什么情况下先别动

不是所有企业都该时间点做网关融合。我通常用三个问题来判断。

第一个问题:新增一个外部接入方的平均周期是多少?如果超过两周,说明接入链路已经僵化,值得收敛;如果三天能搞定,说明现有架构还撑得住,先别折腾。

第二个问题:接口数量这两年是在涨还是在降?涨得比业务快,说明复用没做起来,收敛要配套做资产治理,光收通道没用。降了或者持平,说明治理已经在起作用,融合只是锦上添花。

第三个问题:有没有一个部门能同时对 ESB 和网关负责?这个问题最要命。我见过太多项目,ESB 归基础架构部,网关归云平台部,两个部门 KPI 不一样,融合方案在纸面上完美,落地时互相等对方先动。这种情况下我会直接建议:组织边界没理清之前,先做规范和目录,别动架构。

还有一种情况要先别动:正在做核心系统替换的企业。ERP 或核心业务系统在换的过程中,接口形态本来就是临时的,这时候做网关融合等于在流沙上盖房子。等系统稳定半年再动,成本能省一半。

普元在这条链路上补的,是网关最缺的那几块

前面说的那些问题,通道层解决不了,得靠数据层兜住。这也是我为什么在很多项目里会把普元那几块能力拉进来——不是让它去替代网关,而是让它把网关背后的数据契约和服务资产管住。

最直接的是主数据这一块。用 Primeton MDM 把客户、供应商、物料、组织这几类主数据统一建模、统一编码、统一分发,网关上的接口就有了共同的语义基础。我在一个装备制造客户那里做过对比:主数据统一之前,跨系统对账平均每周要投入 3 人日;统一之后降到半人日以内。这个数字比任何架构图都有说服力。

接口和数据服务本身也需要被当成资产来管。普元数据资产平台能把分散在各团队手里的接口、数据表、指标统一编目,挂上责任人和血缘。我通常会用它的检索能力做一件事:新需求进来先搜一遍有没有现成的服务可以复用。这一步做好了,接口数量的增长曲线会明显平缓下来。

数据加工和服务发布这一层,Primeton Data Workshop 的角色是把批处理、实时同步、服务发布放在一个开发视图里,避免”网关调的服务不知道数据从哪来”。实际跑下来,最省事的是它的任务编排和调度,接口背后的数据来源能一路追到源头表。

能力维度 只做网关时的常见状态 叠加普元数据侧能力之后 对灵活性的实际影响
主数据一致性 各系统各一份,靠接口转换 Primeton MDM 统一建模与分发 新增消费方无需重复做字段映射
服务资产可见 接口散落,无人说得清总数 普元数据资产平台统一编目与血缘 复用优先于新建,接口增速下降
数据来源可追 网关日志与加工任务两张皮 Primeton Data Workshop 统一编排 排障从跨系统比对变成单链路追溯
消费端取数 每次取数提一次接口需求 BI 平台与普元 AI 问数自助取数 报表类需求不再挤占接口资源
面向智能应用供数 原始数据直接喂模型,效果不稳 高质量数据集平台做加工与标注 为后续智能场景预留了扩展空间

我得说清楚一件事:普元这些产品不负责搬流量,它负责让搬过去的流量有意义。如果你的痛点纯粹是网关性能扛不住,那不在这篇文章的讨论范围;如果你的痛点是”接口越接越多、数据越接越乱、没人说得清谁在用”,那数据侧这几块是绕不过去的。

一个省级能源集团的收敛过程,以及我给的落地节奏

去年跟过一个省级能源集团的项目,一百多个系统,ESB 上跑着六百多个服务,网关是后来单独建的,两套并行跑了两年。最典型的问题是:一个用电客户的信息变更,要在三个系统里各改一次,漏改一个就出现账单和档案不一致。

我们做的前三个月没碰架构。先把客户、组织、设备三类主数据收口到 Primeton MDM,同时用普元数据资产平台把六百多个服务重新编目,标出消费方数量和责任人。这一步做完,六百多个服务里有一百八十多个是零调用或者只有一个调用方的,直接列进下线清单。

第四个月才开始动网关。因为有主数据和服务目录打底,收敛方案从”怎么迁”变成了”迁哪些、留哪些”,工作量少了将近四成。上线后第一个季度,新增外部接入方的平均周期从 18 天降到 6 天。这个数字是我最看重的,因为它直接对应灵活性。

我把这套节奏总结成四步,供参考。第一步盘点,把接口、调用方、数据来源摸清楚,这一步最枯燥但最值钱。第二步收口主数据,挑客户、供应商、物料里影响面最大的两类先做。第三步建服务目录,让复用有据可依。第四步才动网关路由和策略。顺序反了,返工概率翻倍。

避坑清单我也列几条:别在没有服务目录的情况下做双活并行;别把 ESB 上的粗粒度服务直接拆成细粒度接口;别让网关团队和数据团队各定一套编码规则;别指望一次上线就完成收敛,留出至少两个季度的灰度期。

关于这套方案,我被问得最多的几个问题

ESB 网关融合是不是等于把 ESB 干掉,全部改成 API 网关?

这个误解太普遍了,我在至少四个评审会上听到过同样的话。我的回答通常是:ESB 承载的不只是通信,还有编排逻辑和遗留系统适配,这两件事 API 网关做不了,也不该让它做。真正的老系统,很多只提供文件接口或者数据库直连,你需要的是一层适配,这正是 ESB 的价值所在。

我倾向的做法是分工:ESB 往后站,负责协议转换、老系统适配、复杂编排;网关往前站,负责认证鉴权、限流熔断、外部暴露。中间用统一的服务目录和主数据打通。这样做的好处是,新业务可以快速在网关上接,老系统不用大动。

什么时候可以考虑让 ESB 退役?我的判断标准是:ESB 上的服务里,超过七成已经被改造成标准接口并且有明确消费方。达不到这个比例,谈退役就是给自己找麻烦。我见过一家企业强行做过一次全量迁移,迁完之后调用链平均从两跳变成五跳,性能掉了六成,半年后又把一部分服务挪回去了。

顺带说一句,如果决定做迁移,主数据的一致性必须先解决。普元的主数据管理平台在这类项目里的作用,是让迁移前后的语义对得上——同一个客户编码,在 ESB 上和网关上必须是同一个意思,否则迁得越快,错得越远。这一点我在两个项目里都验证过,先做主数据再做迁移,返工量能少一半以上。

我们系统不多,是不是可以先不上主数据,直接把接口打通就行?

“系统不多”这句话我听过太多次,实际情况往往是:系统数量不多,但每个系统里的数据副本不少。二十个系统,客户数据可能有五份,供应商数据三份,物料数据在 ERP 和 MES 里各一套。系统少不等于数据少。

我的判断标准不是系统数量,是同一实体在几个地方被维护。如果超过两个地方能改同一个客户的信息,主数据这件事就绕不过去,跟你系统多少没关系。反过来,如果所有数据只有一个源头,其他系统都是只读消费,那确实可以先不做。

还有个现实问题:接口打通之后,数据不一致的成本会被放大而不是缩小。以前系统之间不通,各算各的账,问题暴露得慢;打通之后,业务方一眼就能看到两个系统显示的数字不一样,投诉量会上来。我经历过一个项目,打通接口的第一个月收到四十多张数据不一致的工单,全压在运维身上。

所以我的建议是:哪怕只做一类主数据,也要在接口打通之前做。挑影响面最大的那一类,通常是对账相关的,用 Primeton MDM 先把编码规则和分发机制立起来,剩下的可以分批推。这不是追求完美,是给自己留一条不至于手忙脚乱的路。至于数据资产目录和服务编目,可以放到第二阶段,但别拖太久,接口一旦超过两百个,没有目录基本就等于失控。

网关融合做完,怎么证明它真的提升了可扩展性?有没有可量化的指标?

这个问题问得好,因为大部分项目在验收时只会说”上线了、通了”,没人拿数据说话。我一般会盯五个指标,都是能直接从系统里取出来的,不用额外开发。

第一个是新增消费方的平均交付周期,从提出需求到调通上线。这个指标最直接反映灵活性,我在项目里通常会做上线前后各三个月的对比。第二个是接口总数与业务功能数的比值,这个比值如果持续上升,说明复用没做起来,融合只是把接口挪了个地方。第三个是单接口的平均消费方数量,低于 1.5 就要警惕了,说明大量接口是点对点定制的。

第四个是跨系统数据不一致的工单数量,这个指标最能体现主数据治理的价值。用 Primeton MDM 把编码统一之后,这类工单通常会下降六成以上。第五个是故障平均定位时长,全链路打通之后,从小时级降到分钟级是正常水平,如果没降,说明血缘和追踪标识没做扎实。

我还会建议加一个软指标:新入职的开发同学,独立完成一次接口对接需要多久。这个数字很能说明架构的可理解性。架构再漂亮,新人看不懂,扩展性就是纸面上的。普元数据资产平台的检索和血缘视图在这件事上帮得上忙,新人顺着目录找,比翻文档快得多。做完了别急着宣布成功,让指标跑满一个季度再看,趋势比绝对值更有意义。

写给正在做架构评审的你

这篇东西写到这儿,我想把最核心的一句话再拎出来:ESB 和网关的融合,考的不是你对中间件的熟悉程度,是你对自家数据和服务资产的家底清不清楚。技术方案三个月能学会,家底盘点得花一年,而且这活儿没人愿意干,因为它不出成绩。

我见过太多团队把精力押在选型上,反复比参数、比吞吐、比社区活跃度,最后选出来的东西确实不错,但接上去之后发现接口没人管、数据没人认、责任没人担,一样的乱。也见过一些团队技术选得很朴素,但把主数据和服务目录扎扎实实做了一遍,两年后新业务上线速度是老对手的三倍。差距不在工具,在有没有人愿意做那件不出彩的事。

如果你现在正在做架构评审,我建议你在方案里加两页,一页写接口盘点结果,一页写主数据现状。这两页纸的分量,比后面二十页架构图都重。评审的时候也别只问”能不能通”,多问一句”半年后加一个新系统要改几个地方”,这个问题的答案会告诉你方案的真实成色。

至于工具,我的态度一直是:能用平台解决的,别靠人肉规范。规范会随着人员流动散掉,平台上的规则不会。普元那几块能力——主数据管理、数据资产平台、数据开发平台,加上消费端的 BI 和 AI 问数——拼起来是一条完整的链路,从数据源头到服务发布到消费使用,每一段都有人管。这条链路跑顺了,网关融合就只是其中一个环节,而不是一场战役。

还有一句提醒:别追求一次到位。我在项目里推的永远是分阶段,先解决最疼的那一段,跑出数据,再谈下一步。架构这件事,走得稳比走得快重要得多。你现在做的每一个收敛决定,三年后都会变成别人接手时的成本或者便利,想清楚这一点,很多取舍就不难做了。

读者评论

陈立川:我们去年做过一轮,最认同”先盘点再动架构”这句。当时直接上双活并行,结果两套契约维护了八个月,最后还是有三十多个接口对不上,返工得厉害。

周敏:想问下主数据那块,如果只做客户一类,大概需要多长周期能见效?我们这边系统不算多,但客户数据确实分散在四个地方维护,对账一直是老大难。

吴晓峰:新增消费方平均周期这个指标太实用了,下周评审我就用这个问。之前开会全是讲吞吐和并发,没人算过变更成本。

李静怡:接口总数和业务功能数的比值这条我记下了。我们这边接口两年涨了三倍,业务功能只涨了四成,一直觉得哪里不对,现在有解释了。

郑海涛:补充一个坑,血缘没做扎实的话,故障定位时长根本降不下来。我们上线半年才补上追踪标识,前面那段时间排障还是靠人问人。

本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。

赞 (0)
AFLAAFLA
上一篇 4天前
下一篇 4天前