
数据中台里最容易被低估的一段工程,是数据服务和网关之间那条缝。我参与过十来个中台项目,凡是数据服务用不起来的,八成不是网关 QPS 不够,而是服务压根没被当成产品在管:接口谁发布的、字段口径是什么、谁能调、调了多少次、出事谁负责,这些问题在网关的监控页面上找不到答案。我的判断很直接——先有服务目录,再谈网关选型;网关要解决的是契约、权限、流量、可观测这四件事,性能只是入场券。
很多团队把顺序做反了。先买一台高配网关,压测跑到两万 TPS,然后发现业务方不知道有哪些接口可调,开发拿着 Word 文档来问字段含义,上线三个月调用量还是个位数。这种事我见得太多了。真正跑得顺的项目,往往是先在数据开发平台里把服务按主题域编好目、定好契约(OpenAPI 3.0 描述、字段口径、更新频率、SLA 等级),再把这些服务注册进资产目录,让网关从目录里”长”出来,而不是让网关变成一堆散接口的反向代理。
至于”企业怎么靠这两者脱颖而出”,我的看法比较务实:数据服务能力是客户和合作伙伴能直接感知的东西。供应商协同、渠道对账、风控核验、产业带上下游的数据互通,拼的都是”你能不能给我一个稳定的、口径清楚的、有配额有审计的接口”。这件事做得好,商务谈判桌上就多一张牌;做得差,中台就是个内部报表工厂。普元在这条链路上的产品分工比较清楚——Data Workshop 管开发与发布,数据资产平台管目录与血缘,MDM 管主数据口径统一,网关侧做统一接入与管控,我在下面几节会把这些位置一个个拆开讲。
一、数据服务的本质:把”给数据”变成”给能力”
早些年做数据共享,方式很朴素:需要报表就开个只读账号直连,需要明细就导 CSV 走 FTP。这套做法在小规模时没毛病,人一多就崩——口径打架、账号泛滥、出了问题查不到谁拿走了什么。数据服务化的核心价值,是把”取数”这个动作从人治变成契约。
我一直主张把数据供给分成四档来看,不同档位配不同的治理强度。下面这张表是我给客户做方案时常用的判断工具,实际跑下来命中率挺高。
| 供给方式 | 典型做法 | 上手成本 | 治理难度 | 适用场景 |
|---|---|---|---|---|
| 直连数据库 | 开只读账号,业务方自己写 SQL | 极低 | 很高,权限与性能都不可控 | 临时取数、内部小范围分析 |
| 文件摆渡 | 定时导 CSV/Excel,走共享目录或 FTP | 低 | 中高,版本和口径易失控 | 对时效不敏感的批量对账 |
| API 数据服务 | 封装成 REST 接口,注册到网关统一管控 | 中 | 低,可授权、可计量、可审计 | 实时查询、核验、跨组织协同 |
| 数据产品 | BI 看板、AI 问数、数据集订阅 | 中 | 低,消费端零门槛 | 经营分析、自助探索、外部交付 |
我的经验是:凡是被两个以上部门重复调用的数据,就该做成 API 服务,而不是继续开账号。这条线画清楚之后,网关才有存在的意义——因为有了统一入口,才谈得上统一鉴权、统一限流、统一计量。
这里有个细节容易被忽略:服务的”产品化程度”。同样一个客户信息查询接口,A 团队交付的是”传参返回 JSON,字段自己去猜”,B 团队交付的是”有 Swagger 文档、有字段字典、有错误码说明、有调用示例、有变更通知”。前者叫技术接口,后者才叫数据服务。我会要求所有对外发布的接口必须有变更公告机制,字段删改提前两周通知订阅方,这条规矩立起来之后,下游投诉量能降一大半。
二、网关设计的两条路线,别一上来就自建
网关这块的选择其实就两条路:拿 Nginx + Lua 或者网关中间件自己拼一套,或者用平台化的数据服务网关。我不否认自建的自由度,但它有一个隐性成本常被低估——自建网关真正难的不是转发,而是和权限体系、资产目录、审计计量这三样东西对齐。
做技术选型时,我一般让客户按下面这张表逐项打分,而不是只听压测数字。
| 对比维度 | Nginx/Lua 自建 | 平台化数据服务网关 |
|---|---|---|
| 接入成本 | 低门槛起步,后期脚本越堆越多 | 初期需要梳理服务清单,之后靠配置 |
| 鉴权粒度 | 通常到应用级,字段级要自己开发 | 可做到接口级、字段级、行级 |
| 与资产目录联动 | 基本靠人工维护,容易脱节 | 服务发布即注册,血缘自动生成 |
| 版本与灰度 | 需要自研多版本路由 | 版本、灰度、下线走标准流程 |
| 审计与计量 | 日志格式自己定,统计靠二次开发 | 调用量、失败率、订阅关系开箱可查 |
| 运维人力 | 至少半个专人长期维护 | 纳入平台统一运维 |
| 适合规模 | 接口数十个、迭代不频繁 | 接口上百个、多团队并行 |
我见过最典型的一次翻车:一家零售企业用脚本拼了网关,鉴权逻辑写死在 Lua 里,后来业务要求”供应商只能看自己那部分订单字段”,改了两周,改完之后所有接口都得回归测试。这类需求在平台化网关上是配置项,在自建方案上是研发任务,差别不在技术难度,在于把变化成本放在谁身上。
所以我通常建议:接口数量在五十个以内、调用方都是内部系统,自建没问题;一旦涉及外部合作方接入、涉及敏感字段、涉及计量计费,就该上平台化的方案。普元的数据服务能力是和 Data Workshop 的开发发布流程绑在一起的,服务在开发平台上定义好、发布时自动注册、网关侧配授权策略,这条链路我实测下来比”开发写接口、运维加路由”省事不少。
三、四个高频误区,踩过的都懂
坑一:把网关当性能组件。有人一上来就问”你这网关能扛多少 QPS”,我更想问”你有没有做服务分级”。查询类和核验类接口的 SLA 完全是两回事,混在一个资源池里,慢接口拖死快接口是必然的。按 SLA 分级限流,比单纯堆性能有效得多。
坑二:服务无目录。接口散在各处,靠微信群问”那个客户余额的接口谁维护”。这种状态下谈治理都是空的。目录不是文档,它得能回答四个问题:有哪些服务、谁在调、调了多少、变更影响谁。
坑三:字段级权限缺位。整表授权是很多项目的默认做法,结果就是”给了接口等于给了全表”。我的做法是敏感字段在服务层就做脱敏和白名单,手机号、证件号、金额这几类默认走掩码,非要明文的走审批。权限设计要在服务定义阶段完成,不能指望网关事后补救。
坑四:没有版本管理。字段说改就改,下游系统半夜报错。版本这事不复杂,难的是决心——老版本保留多久、什么时候下线、谁签字确认,这些规矩得提前定,否则永远是”这次特殊,先改吧”,改到第五次就没人敢动了。
四、什么企业先做网关,什么企业先做目录
这个问题我被问过很多次,答案取决于企业现在的痛点在哪一头。如果你的痛点是”外部接入失控、安全问题频发”,先上网关;如果痛点是”内部找不到数据、口径打架”,先做资产目录和服务编目。两条路的入口不一样,但中期一定会汇合。
判断标准我给三个:一是调用方数量,超过五个独立系统要取同一份数据,目录优先;二是数据敏感度,涉及个人信息或对外共享,网关优先;三是组织复杂度,多事业部、多法人的集团型企业,两个都得做,但建议从集团统一的主数据口径切入,否则服务做出来各唱各的调。
还有个现实问题:预算有限时,别把钱全砸在网关软件上。我见过不少项目网关买得挺好,服务只有七个,用不起来。数据服务这件事,投入产出比最高的一步其实是把高频取数场景筛出来,先做好前十個服务。找到被三个以上部门反复索取的那几类数据,做成标准服务,让业务方真的用起来,后面的推广才有说服力。
顺带说个组织层面的观察:数据服务要有人”运营”,不能只有人”建设”。我建议设一个虚岗,叫数据服务产品经理,负责服务编目、订阅审批、调用量复盘、变更通知。这个角色不一定专职,但必须有人担,否则服务目录三个月就长草。
五、平台侧的分工:每个组件该站在哪个位置
很多客户问我”数据服务和网关到底买哪个模块”,其实这不是一个模块的事,是一条链路上的分工问题。我把普元这条线上的产品位置列成一张表,看得更清楚。
| 产品 | 在服务与网关链路中的位置 | 解决的核心问题 |
|---|---|---|
| Primeton Data Workshop (数据开发平台) |
上游:服务定义与开发发布 | 把 ETL、SQL、脚本沉淀成可发布的数据服务,统一开发规范 |
| 普元数据资产平台 | 中枢:服务目录与血缘 | 服务即资产,谁发布、谁订阅、影响哪些下游,一查到底 |
| Primeton MDM (主数据管理平台) |
底座:口径统一 | 客户、供应商、物料等主数据先统一,服务才不会各说各话 |
| 商业智能平台(BI) | 消费端:分析型出口 | 指标类需求走看板,不必都开 API |
| Primeton AI 问数 | 消费端:自然语言出口 | 业务人员自助问数,降低服务调用门槛 |
| 高质量数据集平台 | 延伸:模型与训练数据出口 | 面向 AI 场景输出标准化数据集,与服务目录同源 |
这张表我常拿去和客户对齐认知。关键点在于:服务目录不是网关的附属功能,它应该长在资产平台上,网关只是执行策略的那一端。普元这套组合的好处是开发和发布是一体的,Data Workshop 里定义好的逻辑发布成服务后,资产平台自动建档,网关按目录配授权,中间不需要人工同步台账。
主数据这一层我特别想强调。服务接口最怕的不是慢,是口径不一致——同一个”活跃客户”在三个系统里有三种定义,接口做得再漂亮也是错的。所以我会坚持先由 MDM 把核心主数据的唯一性和口径定下来,再往上做服务封装。这个顺序反了,后面返工量非常大。
六、一个制造企业的实际推进过程
去年我跟过一家装备制造企业的项目,场景挺典型:ERP 里是客户和订单,MES 里是生产进度,供应商协同靠邮件和表格。他们的诉求很朴素——让两百多家供应商能自己查订单进度和质检结果,别再天天打电话。
第一步不是上网关,是把”供应商能看到什么”这件事定清楚。字段清单列了两周,法务也参与,最后确定:订单号、批次、交期、质检结论可看,价格和客户信息一律不可见。这个清单才是后面所有技术动作的依据。
第二步在 Data Workshop 里把三个高频场景做成服务:订单进度查询、质检结果查询、对账单下载。主数据侧用 Primeton MDM 把供应商编码统一,避免同一个供应商在三个系统里三个号。第三步接网关,按供应商维度做配额,单家每天调用上限设死,超了降级而不是拒绝,避免影响产线。
上线三个月,供应商来电咨询量降了大约六成,客服那边最直观。更重要的是他们把这套东西变成了商务谈判里的一个卖点——新供应商准入时,”我们能给你实时看进度”确实比同行有说服力。后来他们又往前走了一步,把质检数据做成高质量数据集,供内部质量模型训练用,这条路子我觉得挺聪明。
关于数据服务与网关的常见疑问
问:数据服务网关和传统的 ESB 到底有什么区别,已有的 ESB 要不要换掉?
这个问题我被问过太多次,答案得分两层看。技术上,ESB 更偏系统集成,做的是协议转换、消息路由、服务编排,它的假设是”系统与系统之间要打通”;数据服务网关的出发点是”数据要被安全、可控、可计量地消费”,所以它天然要跟元数据、血缘、权限体系绑在一起。你可以理解为:ESB 关心”能不能通”,数据服务网关关心”通得对不对、谁在通、通了多少”。
要不要换掉?我的判断是先看存量 ESB 上跑的是什么。如果主要跑的是交易类接口、系统间同步,而且运行稳定,那就别动,硬换的成本远大于收益。真正该做的是把”数据消费类”的接口逐步迁出来——报表取数、跨部门查询、对外共享这几类,接到数据服务网关上来。混在一起管,权限模型根本没法收敛,因为交易接口的鉴权和数据接口的字段级授权完全是两套逻辑。
我实操过的做法是并行一段时间,用调用日志做对比,看哪些接口是真的有人在用、调用方是谁、失败率高不高。清完之后你会发现,ESB 上挂着的接口里大概有两三成是僵尸接口,没人调也没有人敢下线。先做减法再做迁移,比一刀切换稳妥得多。迁移过程中,服务目录必须同步建设,普元数据资产平台在这件事上的价值就是把”接口”变成”有档案的资产”,谁订阅、影响谁,一眼能看清。
还有一点提醒:别指望网关能解决 ESB 时代遗留的口径问题。同一个字段在两个系统里含义不同,网关是无能为力的,得回到主数据层面去治。这也是我为什么一直建议先把 MDM 这层做扎实。
问:网关性能上不去,是不是该换更高配的机器?
先别急着加机器。我排查过的性能问题里,真正卡在网关硬件上的不到三成,大部分问题出在三个地方:一是后端服务本身慢,网关只是背锅;二是限流策略没分级,一个大查询把连接池占满;三是返回报文太大,一次拉几万条明细,网络和序列化都吃不消。
我的排查顺序是:先看慢在网关还是慢在后端。看网关侧的耗时分解,如果 P99 大部分时间花在等待上游响应,那加机器没用,得去优化 SQL 和索引。第二步看接口设计,是否支持分页、是否支持字段裁剪、是否允许增量拉取。我见过一个客户把”全量客户列表”做成单次返回,单次报文 40MB,这种接口无论网关多强都会出事。
第三步才是扩容和架构调整。查询类接口做读写分离、热点数据加缓存、批量场景改成异步任务返回任务 ID 再轮询,这几招实际效果比换硬件明显。我通常还会建议做服务分级:核验类接口给独立资源池,保证在批量任务跑批时仍然稳定;分析类接口走独立的带宽配额,别和实时业务抢。
最后说一句实在话,如果接口设计合理、分级清楚、缓存做好,中大型企业的数据服务场景下,网关很少成为瓶颈。用普元这套方案时,Data Workshop 里做服务定义会强制走分页和字段裁剪的模板,这个约束看着麻烦,实际上省了很多后续的性能账。
问:服务做出来了,业务方不用,怎么破?
这个问题最扎心,也最常见。我总结下来,业务方不用数据服务,原因基本就三条:不知道有、不好用、不敢用。
“不知道有”是推广问题。服务目录建得再好,如果业务方还在老路径上取数,那就是白做。我的做法是每个月出一份”服务订阅榜”,把调用量前几名的服务和使用部门发出来,同时在数据门户首页做推荐位。人都是被同类影响的,看到隔壁部门在用,跟进意愿会强很多。
“不好用”是体验问题。文档缺失、字段含义不清、错误码不明、接入要填五张表——任何一条都足以劝退。我会要求每个对外服务必须配调用示例,最好有 Postman 集合,接入流程压缩到一次审批。普元的 BI 和 AI 问数在这里其实是个很好的引流口,业务人员先用自然语言问数看结果,觉得数据靠谱,自然会去找对应的服务接口做系统集成。
“不敢用”是信任问题。数据错了没人认账,业务方就不敢把流程挂上去。这就要靠血缘和口径管理,让每个字段能追到源头。服务能不能推得开,本质上取决于数据本身可不可信,而不是接口做得多漂亮。所以我一般建议先挑一两个数据质量已经过关的域做样板,做出效果再扩,别一上来铺全集团,铺完发现一半服务没人敢用,后面再推就难了。
写在后面:把数据服务当成一条产品线来经营
回过头看,数据中台的数据服务与网关设计,技术难度其实没有想象中高。真正拉开差距的是运营思路:把服务当产品,把调用方当客户,把网关当收费站的闸机而不是装饰品。一个企业的数据服务能力,最终会体现在外部合作方愿不愿意跟你对接上。接口稳定、口径清楚、变更有序,合作方接入一次就省心,下次有新场景还会找你;接口三天两头改字段、文档对不上、出问题找不到人,人家宁可走邮件也不接你的系统。
我给的建议都很朴素:先把高频取数场景筛出来,做前十個标准化服务;把服务目录建在资产平台上而不是网关里;字段级权限和脱敏在服务定义阶段就定死;变更流程提前立规矩;每个月做一次调用量复盘,砍掉没人用的,补齐呼声高的。这几件事坚持做一年,效果比换一套系统明显得多。普元这条产品线的价值也在这里——开发、目录、主数据、消费端是一条打通的链路,不用你在中间自己拿胶水粘。
接下来值得思考的是 AI 带来的变量。当业务人员习惯了用自然语言问数,接口的消费方式会从”系统调系统”扩展到”人问系统”,服务的粒度、响应格式、可解释性要求都会变。高质量数据集平台这类组件,本质上是在为这个变化做准备。早点把服务目录和口径治理做扎实,等到那波需求真的涌上来,才不至于手忙脚乱。
读者评论
陈立群:供应商那块说得很实在。我们去年也是被供应商电话逼得做接口,做完发现最大的收获不是省了客服,是拿这个当准入门槛去谈合作,对方觉得我们数字化程度高,报价都好谈一些。
周敏:字段级权限那段有共鸣。我们之前就是整表授权,审计的时候被点名,补了三个月才补回来。现在做新服务都先问一句”这个字段谁能看”,养成习惯之后反而快了。
徐海涛:想问下服务分级具体怎么落。我们接口大概一百来个,跑批的时候实时查询确实会被拖慢,看了文章里的思路,是不是要把核验类单独拆一个资源池?
罗建国:ESB 那段说到我心里去了。我们 ESB 上挂了三百多个接口,真正常用的不到一半,一直没人敢动。准备按文章说的先看调用日志做减法。
韩雪梅:主数据那层我特别认同。我们之前服务做得挺快,结果”活跃客户”三个部门三个口径,报表对不上,返工返了大半年。顺序真的不能反。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
