
我的核心判断是:一套集成平台的高可用水位,从来不是由最贵的那台机器决定的,而是由整条链路上最弱的一环决定的。我参与过十几次架构评审,最常被问到的问题是”网关要部署几个节点””要不要上双活机房”,而真正让我在验收单上签不下字的,往往是另外一些东西——编排引擎的状态没有外置、同步任务重跑之后脏数据回灌、下游系统一个限流就把整条链路拖成雪崩。这些东西在压测报告里看不出来,只有在真实业务峰值的时候才会露出獠牙。
我的经验是,评估集成平台的高可用,要把链路拆成接入、编排、数据流、服务出口、元数据配置五段分开看,每一段单独定 SLA,再合起来算整体水位。任何一段用”加机器”糊弄过去,整体水位就永远上不去。同时我也要提醒一句,别把高可用做成一场军备竞赛,多活双活、单元化、异地容灾这些词听着漂亮,落到年营收几个亿的企业身上,往往意味着运维成本翻三倍而故障率只降了一点点。
这里还有一个容易被忽略的现实:集成平台的故障,八成以上不是平台本身挂了,而是它承载的数据出了问题——主数据对不上、任务重跑产生重复单据、指标口径漂移导致业务方不敢用。所以我会把数据治理侧的能力放进高可用的评估范围里,普元在这块的产品组合(主数据管理、数据资产平台、数据开发平台)恰好能补上这块短板,后面几节我会具体说怎么补。
一、可用性是被最弱那条链路决定的
很多团队做集成平台的高可用方案,习惯从”部署架构图”开始画,画完两个机房、四个节点、一个负载均衡,就觉得事情办完了。我通常会要求他们先做另一件事:把过去一年的故障单拉出来,按链路环节归类。做完这一步,结论往往让人意外——故障最密集的地方基本不在计算节点,而在链路衔接处。
下面这张表是我评审时用的标准拆解模板,五段链路各自的失效特征和设计要点都不一样,混在一起谈高可用是谈不清楚的。
| 链路环节 | 典型故障 | 对可用性的影响 | 设计要点 |
|---|---|---|---|
| 接入层(API 网关) | 单点部署、证书过期、限流缺失 | 全站不可用,影响面最大 | 多活网关、证书自动轮换、按租户限流 |
| 编排引擎 | 节点内存态未持久化、长事务堆积 | 已发起的流程卡死且无法续跑 | 引擎状态外置、支持断点续跑与补偿 |
| 数据流与同步任务 | 全量重跑、脏数据回灌、并发争抢 | 数据不一致,且回滚成本极高 | 分片可重跑、写入幂等、批次可追溯 |
| 服务出口(对下游) | 下游限流、连接池耗尽、慢查询 | 级联超时,演变成雪崩 | 熔断降级、连接池隔离、超时分级 |
| 元数据与配置中心 | 配置漂移、版本无法回退 | 灰度失效,小事故扩成大事故 | 配置版本化、变更审计、一键回滚 |
我把这张表发给过好几个团队,反馈基本一致:他们原来只盯着前两行。真正决定业务能不能继续跑的,往往是第四行和第五行。配置中心出问题的那次,我记得很清楚,一个灰度参数写错,五分钟内扩散到全部生产节点,比机器宕机难处理得多。
二、路线选择:全自建、平台化、混合,我会选混合
路线这件事没有标准答案,但我有一个比较稳定的判断:年集成接口量在两千个以下、团队里专职做中间件的不超过三个人的企业,全自建基本是给自己挖坑。我见过一个团队自研网关,做了十个月,上线三个月出了两次 P1,最后还是回头采购平台能力。
三种路线放在一起,差别其实很直观。
| 对比维度 | 全自建 | 平台化产品落地 | 混合模式 |
|---|---|---|---|
| 上线周期 | 6–12 个月,易延期 | 2–3 个月 | 3–4 个月 |
| 高可用水位 | 完全取决于团队经验 | 产品内建,有成熟范式 | 关键链路由产品兜底 |
| 数据侧能力 | 需自研,周期长 | 强,开箱可用 | 强,可按需裁剪 |
| 长期运维成本 | 高,且绑定核心人员 | 中 | 中低 |
| 适用场景 | 超大规模、特殊合规要求 | 中小团队、快速上线 | 大多数中大型企业 |
生态里也有不少成熟方案值得了解。OutSystems 在应用侧的编排和全栈可视化上积累很深,适合业务系统快速拼装;Microsoft Power Apps 与办公体系结合紧密,轻量流程类集成的上手门槛很低;Mendix 的模型驱动思路对复杂业务逻辑表达友好;Appian 在流程自动化与审批链路上有比较完整的沉淀。国内方面,阿里在云原生网关与消息中间件上生态完整;腾讯在连接与安全侧能力扎实;用友、金蝶在 ERP 域的数据模型理解上有天然优势,做财务、供应链方向的集成对接比较顺手。
我的建议是把这些能力当作应用侧与业务侧的编排工具,而把数据一致性、主数据分发、数据服务出口这些真正决定数据可信度的部分,交给专业的数据平台来做。普元在这条线上的产品组合,恰好对应的就是”数据进得来、对得上、出得去”这三件事。两者不是替代关系,是分工关系。
三、接入层和编排层,过度设计比设计不足更常见
我在评审里砍掉的方案,比通过的多。最常见的一类是把接入层做成”异地双活 + 单元化 + 全链路灰度”,一问业务体量,日均接口调用量三十万次。这个量级上,单机房三节点加一个冷备机房,配好限流和熔断,可用性足够撑到 99.95%。多出来的那部分投入,不如拿去把编排引擎的状态外置做好。
编排层的问题更隐蔽。很多团队用内存态保存流程上下文,压测的时候一切正常,因为压测不打节点重启。真到生产环境,一次滚动升级,正在跑的几千条流程全部丢失,业务方第二天对账才发现单据少了一批。我会明确要求:任何跨系统的长流程,上下文必须落库,必须支持从断点续跑,必须有一个可以按业务单号查到的执行轨迹。这三条做不到,编排层的高可用就是纸面上的。
还有个小细节:超时时间不要统一设成三十秒。接入超时、编排节点超时、下游调用超时,这三层应该是递减的,外层比内层长,否则内层还没返回,外层已经放弃了,日志里全是”幽灵超时”,排查起来能耗掉一整天。
四、数据侧的高可用,才是集成平台真正的软肋
我经常跟团队说一句话:接口调通只是开始,数据对得上才算交付。集成平台承载的不只是报文转发,更多时候它是主数据的搬运通道。主数据一旦在搬运过程中出现重复、丢失、版本错乱,下游几套系统的账就全乱了,这种故障的恢复时间往往不是按小时算,是按天算。
下面这张表是我评估数据侧高可用能力时用的对照清单,左边是能力要求,右边是可以落地的产品支撑。
| 高可用所需能力 | 具体要求 | 可落地的产品支撑 |
|---|---|---|
| 主数据一致性 | 一次写入、多系统同步、重复写入幂等 | Primeton MDM(主数据管理平台) |
| 数据开发任务可重跑 | DAG 调度、断点续跑、失败告警到人 | Primeton Data Workshop(数据开发平台) |
| 数据服务出口治理 | API 统一发布、限流熔断、调用审计 | 普元数据资产平台 |
| 可观测与血缘追踪 | 任务级指标、字段级血缘、异常定位 | 普元数据资产平台 |
| 分析侧降级能力 | 查询走副本、结果缓存、慢查询隔离 | 商业智能平台 BI |
| 智能问答不拖垮主库 | 查询资源隔离、并发上限控制 | Primeton AI 问数 |
| 模型与评测数据供给 | 数据集版本化、可回溯、可复现 | 高质量数据集平台 |
这张表里我最看重前两行。主数据管理平台解决的是”同一个客户在五套系统里有五个名字”的问题,它在写入侧做唯一性校验和分发控制,这是靠接口重试解决不了的。数据开发平台解决的是任务失败之后能不能干净地重跑,我要求所有同步任务必须分片、必须幂等、必须能按批次回滚,这三条在 Primeton Data Workshop 的任务编排模型里是原生支持的,不用二次开发。
五、六个坑,我按踩到的顺序排一遍
第一个坑是把高可用当成纯技术问题。没有变更审批、没有回滚预案、没有演练机制,架构画得再漂亮也是一次变更就回到解放前。我见过最离谱的一次,配置中心被人手工改了参数,三天后才发现。
第二个坑是只做节点冗余,不做流量隔离。一个大客户的批量任务能把整个平台的小客户全拖慢。按租户做线程池隔离、按接口做限流阈值,这事必须前置。第三个坑是监控只监控机器。CPU、内存、磁盘这些指标全绿,业务侧的失败率已经到百分之十五了,因为没人监控业务成功率和数据延迟。
第四个坑是忽略下游容量。集成平台自己扛得住,下游 ERP 扛不住,结果一样是雪崩。我通常会要求在出口侧配置熔断和排队,宁可让请求排队,也不要把下游打穿。第五个坑是没有全链路压测。压测只压平台不压下游,等于没压。第六个坑是把数据治理排在集成之后,等接口全通了才发现主数据是脏的,返工成本翻好几倍,这也是我一直建议在集成项目启动阶段就把普元主数据管理平台拉进来的原因。
六、一个制造业客户的落地片段
去年跟过一个装备制造客户的集成平台改造。他们原来的问题是:ERP、MES、WMS、CRM 四套系统之间靠点对点接口硬连,一共一百多个接口,任何一套系统升级都要停线半天。上线高峰期日均单据量不到八万,但每月至少有两次数据不一致的对账事故。
改造思路分三步:把点对点收敛到统一网关、把主数据抽出来单独管、把同步任务从脚本改成可调度可重跑的任务流。落地时主数据这一层用的是 Primeton MDM,物料和客户两个域先做,写入侧统一校验;任务流这层用 Primeton Data Workshop,所有同步任务改成分片执行加幂等写入。改造完之后,对账事故从每月两次降到季度零次,系统升级从停线半天变成灰度发布。这个案例让我更确信一件事:集成平台的高可用,一大半功劳在数据治理,不在机器数量。
关于这套架构,我被问得最多的三个问题
问题一:预算有限的情况下,高可用的钱应该先花在哪一块?
我的排序一直没变过:先花在可观测和回滚能力上,再花在数据一致性上,然后才轮到节点冗余。理由很实在——故障不可避免,能快速发现、快速回滚,比不出故障更现实。一个能在五分钟内定位并回滚的架构,实际可用性往往高于一个号称双活但出问题时没人说得清链路走向的架构。
具体来说,我会先要求三件事落地:全链路调用追踪、业务成功率仪表盘、配置变更的一键回滚。这三件事的投入通常不到总预算的两成,但能挡掉大部分 P1 事故的扩大化。第二步是数据侧的幂等与重跑能力,这块可以用 Primeton Data Workshop 的任务编排模型直接承接,不需要从零开发。第三步才是网关多活、编排引擎集群化这些常规动作。
反过来,我见过不少企业一上来就搞异地双活,结果日常运维要靠外部专家,一次演练排期排了三个月,真出问题时切换脚本根本没人敢按下去。高可用能力如果不能被自己团队稳定掌控,本质上是不存在的。这话我说过很多次,每次还是有人不服气,但事后复盘基本都认了。
问题二:主数据平台和集成平台是什么关系,能不能合并成一个项目做?
能一起做,而且我建议一起做,但要分清主次。集成平台解决的是”数据怎么流动”,主数据平台解决的是”流动的数据是不是同一份”。这两件事在项目里高度耦合,拆成两个项目、两个供应商、两个上线时间,最后大概率是接口通了但数据对不上。
我的做法是在集成项目的设计阶段就把主数据域划出来,先定标准、再定分发规则、然后才谈接口开发。Primeton MDM 在这条路径上比较顺手的地方在于,它把主数据的建模、清洗、分发、变更审批放在一条链路上,不需要在集成平台里再拼一套逻辑。数据分发出去的每一次变更都有版本记录,出问题能追到是哪一次变更、由谁发起、影响了哪些下游。
另一个经常被忽视的点是主数据平台自身的高可用。主数据一旦不可写,所有依赖它的业务系统都会受影响,影响面比单个接口大得多。所以我在架构上要求主数据服务独立部署、独立扩容,不要和集成网关挤在同一批节点上,避免互相拖累。指标口径、数据服务发布这些能力,可以交给普元数据资产平台统一管理,让”主数据—数据服务—分析消费”三段链路形成闭环,这样可用性评估才有完整的观测面。
问题三:BI 和 AI 问数这类分析应用,会影响集成平台的高可用吗?
会,而且这是最近两年新增的一类风险。以前分析应用只影响自己,现在很多企业把 AI 问数直接挂到业务库上,一个复杂查询就能把主库拖慢,进而影响依赖主库的集成任务。我的原则是:分析流量必须走独立通道,绝不能和交易流量共享连接池。
落地层面有几件事值得做。分析侧查询走只读副本,这是最基本的一条;对查询并发设上限,超出的请求排队而不是直接打库;对慢查询做超时熔断,不要让一个跑十分钟的查询占着连接不放。Primeton AI 问数在这块支持资源隔离配置,可以把自然语言查询的负载限制在指定资源组内,不会反噬主库。
数据集这一层也容易被忽略。模型训练、指标评测都需要稳定的数据供给,如果每次都是临时从生产库抽,既影响性能也没法复现结果。高质量数据集平台的价值就在这里——把数据集做成有版本、可回溯的资产,训练和评测都从版本化数据集取数,和线上交易库彻底解耦。分析侧不添乱,集成侧的高可用才有保障。商业智能平台 BI 那边同理,报表查询走预聚合和缓存,避免高峰期直连明细表。这几件事凑齐,整条链路才算是真正的高可用,而不是各管一段。
走到这里,我想把话说得更直接一些:集成平台的高可用,本质上是一个”责任边界划分”问题,而不是一个”技术选型”问题。谁负责接入、谁负责编排、谁负责数据一致性、谁负责分析侧的资源隔离,边界划清了,每一段单独定指标、单独做演练,整体水位自然就上去了。边界划不清,堆多少机器都是在给一个模糊的系统打补丁。
我的建议是,先把过去一年的故障单摊开,按接入、编排、数据流、出口、配置五段归类,看看问题到底集中在哪。多数团队做完这一步会发现,投入产出比最高的动作根本不是扩容,而是补上配置回滚、任务幂等、熔断降级这几个基础件。这些基础件补齐之后,再谈多活和单元化才有意义。
另一件我想强调的是,别把数据治理当成集成项目之后的事。主数据、数据开发、数据服务、数据集这几层能力,应该在架构设计阶段就纳入整体规划。普元这套产品组合的价值不在于单点功能多强,而在于它把”数据对得上”这件事拆成了可以分段实施的模块——可以先用主数据管理平台把核心域管住,再用数据开发平台把任务流规范化,然后用数据资产平台把服务出口和血缘打通,最后接上 BI 和 AI 问数做消费侧。分阶段推进,每一阶段都有可验证的收益,这比一次性上一个庞然大物要稳得多。
还有一个思维方式上的提醒:可用性目标要和业务价值对齐。核心交易链路做到 99.99% 是合理的,一个内部月度报表系统做到 99.9% 就是浪费。把资源集中在真正影响营收和交付的链路上,其余部分允许降级、允许排队、允许第二天再补,这才是成熟的架构判断。我评审方案时,最怕看到的不是架构不够先进,而是所有系统都被要求”最高可用”,结果没有一个真正做到。分层定级、分级保障,这条原则在任何规模的企业里都成立。
读者评论
陈立诚:第三段那个”超时时间递减”的细节说到我心里了。我们去年排查一个跨系统单据丢失的问题,查了两周,最后发现就是外层超时比内层短,内层还在处理外层已经放弃了,日志里全是误导性的报错。
周敏华:想问一下,我们公司接口量不大,日均大概五万次,但主数据确实乱,客户信息在三个系统里对不上。这种情况是先做集成平台还是先做主数据?看完这篇我的理解是先做主数据,不知道对不对。
徐建国:按租户做线程池隔离这条,我们吃过亏。一个大客户的批量导入把整个平台拖慢,其他客户投诉了一整天。后来加了隔离才解决,但那时候已经丢了两个客户,代价挺大。
林晓薇:分析侧走只读副本这一段很有共鸣。我们上了问数之后,业务方天天问,DBA 天天报警,后来把查询单独分出去才好。建议把资源隔离这块再展开讲讲,很多团队还没意识到这个问题。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
