☰
【中台·落地篇】技术选型全景:开源 vs 自研的决策框架
2026/9/28 20:29:59 网站建设 项目流程

前言

中台建设的技术选型是一个贯穿始终的关键决策——用开源还是自研?选哪个开源项目?自研做到什么程度?选错了,轻则返工、重则项目失败。这不是一个纯技术问题,而是涉及团队能力、预算周期、业务特性的综合判断。

本文将系统性地建立一个中台技术选型决策框架,从评估维度、选型方法论到各层具体方案对比,帮助团队在面对"开源 vs 自研"时做出明智决策。


一、选型决策框架

1.1 六维评估模型

┌──────────────────────┐ │ 1. 业务匹配度 │ │ 是否满足业务需求 │ └──────────┬───────────┘ │ ┌─────────────────────┼─────────────────────┐ │ │ │ ▼ ▼ ▼ ┌────────────────┐ ┌──────────────────┐ ┌────────────────┐ │ 2. 团队能力 │ │ 3. 总拥有成本 │ │ 4. 社区活跃度 │ │ 是否有能力 │ │ (TCO) │ │ 能否持续演进 │ │ 维护和演进 │ │ 5年总成本 │ │ │ └────────────────┘ └──────────────────┘ └────────────────┘ │ │ │ └─────────────────────┼─────────────────────┘ │ ┌──────────┴───────────┐ │ 5. 生态兼容性 │ │ 与现有技术栈融合 │ └──────────┬───────────┘ │ ┌──────────┴───────────┐ │ 6. 风险可控性 │ │ 安全/合规/供应商 │ │ 绑定风险 │ └──────────────────────┘

1.2 六维详解

维度评估要点权重参考
业务匹配度功能覆盖度、定制灵活度、性能满足度30%
团队能力现有技术栈匹配度、学习曲线、招聘难度20%
总拥有成本License费、人力成本、运维成本、升级成本20%
社区活跃度Star数、Contributor数、Release频率、Issue响应10%
生态兼容性与现有中间件/框架的集成成熟度10%
风险可控性安全漏洞频率、合规认证、供应商锁定风险10%

1.3 决策流程

开始选型 │ ▼ ┌──────────────────┐ 否 ┌──────────────────────┐ │ 有成熟开源方案? │───────────→│ 是否有强差异化需求? │ └────────┬─────────┘ │ (开源无法满足) │ │ 是 └──────────┬───────────┘ ▼ │ 是 ┌──────────────────┐ │ │ 开源满足80%+需求?│◄───────────────────┘ 否 └────────┬─────────┘ │ 是 │ 否 ▼ ▼ ┌──────────┐ ┌────────────────────────┐ │ 用开源 │ │ 开源 + 二次开发(定制层) │ │ + 标准化 │ │ 或自研核心 + 开源周边 │ └──────────┘ └────────────────────────┘ │ │ └───────────┬────────────┘ ▼ ┌──────────────────────┐ │ PoC验证 → 团队评估 │ │ → 决策会议 → 确定方案 │ └──────────────────────┘

二、开源 vs 自研对比

2.1 核心对比

┌─────────────────┬──────────────────────┬──────────────────────┐ │ 维度 │ 开源方案 │ 自研方案 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 上手速度 │ 快(现成) │ 慢(从0开始) │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 功能完整度 │ 基础功能齐全 │ 按需开发,可能不全 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 定制灵活度 │ 受限于架构设计 │ 完全可控 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 初始成本 │ 低(直接用) │ 高(人力+时间) │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 长期成本 │ 中(运维+升级+补丁) │ 高(持续投入人力) │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 技术债务 │ 低(社区持续优化) │ 高(自研代码需自维) │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 招聘难度 │ 低(通用技能) │ 高(只有内部懂) │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 知识沉淀 │ 社区文档+内部文档 │ 仅内部文档 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 安全性 │ 取决于社区维护质量 │ 取决于自研团队水平 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 演进能力 │ 跟随社区(不可控) │ 自主可控 │ ├─────────────────┼──────────────────────┼──────────────────────┤ │ 被废弃风险 │ 社区可能停更 │ 人员流失即停更 │ └─────────────────┴──────────────────────┴──────────────────────┘

2.2 什么情况用开源

✅ 优先开源的场景: 1. 标准化基础设施 → API网关(Kong/APISIX) → 消息队列(Kafka/RocketMQ) → 缓存(Redis) → 配置中心(Nacos/Apollo) → 监控(Prometheus/Grafana) → 日志(ELK/Loki) 2. 协议标准化的领域 → OAuth2.0认证(Keycloak/Casdoor) → 数据采集(Canal/Flink CDC) → 容器编排(Kubernetes) 3. 团队没有特殊需求 → 通用功能即可满足 → 不需要差异化 4. 团队规模小 → 无法投入大量人力自研 → 快速验证MVP阶段

2.3 什么情况自研

❌ 需要自研的场景: 1. 核心业务逻辑(差异化竞争力) → 订单引擎(业务规则各不相同) → 价格计算(促销策略千变万化) → 风控引擎(业务深度定制) → 推荐算法(核心竞争力) 2. 开源方案无法满足 → 性能: 开源方案性能不够(如特殊的高吞吐场景) → 功能: 开源缺少关键功能且无法扩展 → 合规: 开源License不允许商用(如AGPL) 3. 安全合规要求高 → 金融/政务领域需要完全自主可控 → 需要通过等保/密评 → 不能依赖外部代码 4. 有足够的团队和预算 → 团队有20+人的中台研发团队 → 有3-5年的持续投入计划 → 有能力建立技术壁垒

2.4 混合策略(最佳实践)

开源 + 自研 = 最优组合 ┌──────────────────────────────────────────────────────────────────┐ │ 中台技术栈 │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ 基础设施层(全开源) │ │ │ │ K8s + Docker + Istio + Prometheus + Grafana + ELK │ │ │ └────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ 技术中台(开源为主) │ │ │ │ Kong/APISIX + Kafka + Redis + Nacos + XXL-JOB │ │ │ └────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ 认证授权(开源IAM + 定制扩展) │ │ │ │ Keycloak/Casdoor(认证) + 自研权限扩展(数据权限/业务权限)│ │ │ └────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ 数据中台(开源引擎 + 自研平台) │ │ │ │ Hive + Spark + Flink + ClickHouse(引擎) │ │ │ │ + 自研数据治理平台/OneService(平台层) │ │ │ └────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ 业务中台(核心自研) │ │ │ │ 自研: 订单引擎/价格引擎/风控引擎/营销引擎 │ │ │ │ 开源辅助: 规则引擎(Drools)/工作流(Camunda) │ │ │ └────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────┘

三、各层技术选型对比

3.1 API 网关选型

┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 维度 │ Kong │ APISIX │ 自研(Spring │ │ │ │ │ Cloud Gateway) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 语言 │ Lua/OpenResty │ Lua/OpenResty │ Java │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 性能 │ 高(3万+ QPS) │ 极高(7万+ QPS) │ 中(1万+ QPS) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 插件生态 │ 丰富(100+插件) │ 丰富(80+插件) │ 有限 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 配置方式 │ 数据库+Admin API │ etcd(实时生效) │ 配置文件/DB │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 动态路由 │ 支持 │ 支持(实时) │ 需重启 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 多协议支持 │ HTTP/gRPC/TCP │ HTTP/gRPC/TCP │ HTTP │ │ │ /UDP/WebSocket │ /UDP │ │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 管理界面 │ 有(企业版) │ 有(Dashboard) │ 无 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 学习成本 │ 中 │ 中 │ 低(Java团队) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 适用场景 │ 通用网关 │ 高性能/云原生 │ 简单场景/Java栈 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 日均请求 < 1亿 → Kong(生态成熟, 插件丰富) • 日均请求 > 1亿 → APISIX(性能更强, 配置实时) • 团队纯Java且流量不大 → Spring Cloud Gateway(但不推荐长期)

3.2 消息队列选型

┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 维度 │ Kafka │ RocketMQ │ Pulsar │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 吞吐量 │ 极高(百万/秒) │ 高(十万/秒) │ 极高(百万/秒) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 延迟 │ 毫秒级 │ 毫秒级 │ 毫秒级 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 事务消息 │ 不支持(需额外) │ 原生支持 │ 支持 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 消息顺序 │ 分区内有序 │ 严格有序 │ 分区内有序 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 延迟消息 │ 不支持(需自研) │ 支持(18个级别) │ 支持(自定义) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 消息回溯 │ 按offset │ 按时间 │ 按时间 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 多租户 │ 弱(Topic为单元) │ 弱 │ 强(原生多租户) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 运维复杂度 │ 中 │ 低 │ 高 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 适用场景 │ 日志/大数据 │ 电商/金融交易 │ 多租户平台 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 中台消息中台 → RocketMQ(延迟消息+事务消息, 运维简单) • 日志/数据管道 → Kafka(超高吞吐, 生态成熟) • 多租户SaaS平台 → Pulsar(原生多租户, 计算存储分离)

3.3 缓存方案选型

┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 维度 │ Redis Cluster │ Redis Sentinel │ Tair(阿里云) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 架构 │ 去中心化分片 │ 主从+哨兵 │ 集群+持久化 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 容量扩展 │ 水平扩展(加节点) │ 垂直(需迁移) │ 水平扩展 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 高可用 │ 自动failover │ 哨兵切换 │ 自动failover │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 数据结构 │ 丰富(5种+) │ 丰富 │ 丰富+扩展类型 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 持久化 │ RDB+AOF │ RDB+AOF │ 多级持久化 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 运维难度 │ 中 │ 低 │ 低(云托管) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 成本 │ 自建(人力+机器) │ 自建 │ 按量付费 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 自建中台 → Redis Cluster(水平扩展+高可用) • 云上中台 → 云Redis(运维省心) • 超大规模 → Redis Cluster + Codis/Twemproxy(代理层)

3.4 配置中心选型

┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 维度 │ Nacos │ Apollo │ Spring Cloud │ │ │ │ │ Config │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 配置推送 │ 长轮询+UDP │ 长轮询 │ 主动拉取(Git) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 热更新 │ 支持 │ 支持 │ 支持 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 多环境 │ 支持(namespace) │ 支持(Env) │ 支持(profile) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 灰度发布 │ 支持(按IP) │ 支持(按IP/Label) │ 不支持 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 权限管理 │ 支持 │ 支持(细粒度) │ 弱 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 服务发现 │ 一体化(注册中心) │ 无(需配合Eureka) │ 无 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 多语言支持 │ Java/Go/Python │ Java为主 │ Java │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 管理界面 │ 有 │ 有(功能完善) │ 无 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 适用场景 │ 注册+配置一体化 │ 纯配置管理 │ 简单配置 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 中台配置中心 → Nacos(注册+配置一体化, 多语言) • 配置细粒度管控 → Apollo(权限管理强, 灰度精细) • 简单Spring项目 → Spring Cloud Config(但不推荐中台使用)

3.5 认证授权选型

┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 维度 │ Keycloak │ Casdoor │ Spring Auth │ │ │ │ │ Server │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 语言 │ Java │ Go │ Java │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 协议 │ OAuth2/OIDC/SAML │ OAuth2/OIDC/CAS │ OAuth2.1 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 社区活跃度 │ 高(Red Hat维护) │ 中 │ 中 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 管理界面 │ 有(功能完善) │ 有(简洁) │ 无 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 扩展性 │ SPI扩展 │ 插件机制 │ Spring扩展 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 社会化登录 │ 50+ Provider │ 20+ Provider │ 需自研 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ RBAC │ 支持 │ 支持 │ 需自研 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 资源占用 │ 高(JVM) │ 低(Go二进制) │ 高(JVM) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 适用场景 │ 企业级IAM │ 中小企业IAM │ Spring生态IAM │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 大型企业/功能全面 → Keycloak(生态成熟, 扩展性强) • 中小企业/轻量级 → Casdoor(Go, 资源占用低, 开箱即用) • Spring团队/简单需求 → Spring Authorization Server • 核心业务权限(数据权限/业务权限) → 开源IAM + 自研扩展层

3.6 数据平台选型

┌──────────────────┬──────────────────────────────────────────────────────┐ │ 层级 │ 选型方案 │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ 数据采集 │ Canal(MySQL CDC) + Flink CDC(实时) │ │ │ Filebeat(日志) + Flume(通用) │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ 数据存储 │ HDFS(离线) + Kafalogo(实时) │ │ │ Hive(离线数仓) + ClickHouse(实时OLAP) │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ 计算引擎 │ Spark(离线/批处理) + Flink(实时/流处理) │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ 数据治理 │ Apache Atlas(元数据/血缘) + 自研数据质量平台 │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ 数据服务 │ 自研OneService(开源无成熟方案) │ ├──────────────────┼──────────────────────────────────────────────────────┤ │ BI可视化 │ Apache Superset(开源) + 自研Dashboard │ └──────────────────┴──────────────────────────────────────────────────────┘

四、TCO 总拥有成本分析

4.1 五年TCO模型

TCO = 初始成本 + 运维成本 + 升级成本 + 人力成本 + 风险成本 ┌──────────────┬──────────────────┬──────────────────┬──────────────────┐ │ 成本项 │ 开源方案(5年) │ 自研方案(5年) │ 商业方案(5年) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ License │ ¥0 │ ¥0 │ ¥50-200万/年 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 服务器 │ 8台 × 5年 │ 8台 × 5年 │ 云托管(含) │ │ │ ≈ ¥40万 │ ≈ ¥40万 │ │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 研发人力 │ 2人(运维+二开) │ 5人(全职研发) │ 1人(对接) │ │ │ ≈ ¥300万 │ ≈ ¥750万 │ ≈ ¥150万 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 运维人力 │ 1人 │ 2人 │ 0.5人 │ │ │ ≈ ¥75万 │ ≈ ¥150万 │ ≈ ¥37.5万 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 升级成本 │ 低(跟随社区) │ 高(自研需自升) │ 低(厂商负责) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 培训成本 │ 低(社区资料多) │ 高(仅内部文档) │ 低(厂商培训) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 5年TCO │ ≈ ¥420万 │ ≈ ¥950万 │ ≈ ¥400-1200万 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 技术债务 │ 低 │ 高 │ 中 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 灵活度 │ 中 │ 高 │ 低 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 结论: • 开源方案: TCO最低, 灵活度中等, 适合标准化场景 • 自研方案: TCO最高, 灵活度最高, 适合核心差异化场景 • 商业方案: TCO不确定, 看厂商定价, 适合快速上线+预算充足

五、选型常见陷阱

5.1 十个常见陷阱

陷阱表现对策
追新症选最新框架,不管成熟度选生产验证过的版本(GA > 1年)
Star崇拜GitHub Star高就选看Contributor数+Issue响应速度
简历驱动选技术为提升个人竞争力选技术为解决业务问题
过度自研什么都自研,显示技术实力基础设施用开源,核心业务才自研
过度依赖开源什么都不改,出问题找社区必须有二开能力和补丁维护能力
单点选型只看技术不看团队匹配选团队最擅长维护的技术
无PoC验证直接上生产,才发现不满足关键选型必须PoC验证
忽视运维只看开发成本运维成本占TCO的40%+
无升级计划上线后从不升级制定年度升级计划
无退路没有Plan B关键组件准备替代方案

5.2 PoC 验证清单

PoC验证要点(选型前必须验证): ┌──────────────────────────────────────────────────────────────────┐ │ 功能验证 │ │ □ 核心功能是否满足业务需求 │ │ □ 高频场景是否流畅 │ │ □ 边界场景是否可接受 │ │ □ 是否支持需要的功能扩展 │ ├──────────────────────────────────────────────────────────────────┤ │ 性能验证 │ │ □ 压测QPS/TPS是否达标 │ │ □ P99延迟是否可接受 │ │ □ 资源占用(CPU/内存/磁盘)是否合理 │ │ □ 扩展性(加节点是否线性提升) │ ├──────────────────────────────────────────────────────────────────┤ │ 可靠性验证 │ │ □ 节点故障是否自动恢复 │ │ □ 网络分区行为是否安全 │ │ □ 数据一致性保证 │ │ □ 故障恢复时间(RTO)是否达标 │ ├──────────────────────────────────────────────────────────────────┤ │ 运维验证 │ │ □ 监控指标是否完善 │ │ □ 日志是否可对接现有日志系统 │ │ □ 部署复杂度 │ │ □ 升级/回滚是否平滑 │ ├──────────────────────────────────────────────────────────────────┤ │ 团队能力评估 │ │ □ 团队是否有能力维护 │ │ □ 招聘市场是否有足够人才 │ │ □ 是否需要外部培训 │ └──────────────────────────────────────────────────────────────────┘

六、技术选型全景图

┌──────────────────────────────────────────────────────────────────────┐ │ 中台技术选型全景图 │ │ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 基础设施层 │ │ │ │ 容器: Docker + Kubernetes + Helm │ │ │ │ 服务网格: Istio(可选) / Linkerd │ │ │ │ 存储: Ceph / NFS / 云存储 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 技术中台 │ │ │ │ API网关: Kong / APISIX │ │ │ │ 消息队列: RocketMQ(交易) / Kafka(数据) │ │ │ │ 缓存: Redis Cluster + 本地缓存(Caffeine) │ │ │ │ 配置中心: Nacos(注册+配置) / Apollo(纯配置) │ │ │ │ 任务调度: XXL-JOB / Elastic-Job │ │ │ │ 分布式事务: SEATA(AT/TCC/Saga) │ │ │ │ 搜索引擎: Elasticsearch │ │ │ │ 注册中心: Nacos / Consul / Eureka │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 认证授权(IAM) │ │ │ │ 认证: Keycloak(企业级) / Casdoor(轻量级) │ │ │ │ 协议: OAuth2.0 + OIDC + SAML │ │ │ │ 权限: 自研RBAC扩展(数据权限/业务权限) │ │ │ │ Token: JWT(RS256) + Redis(刷新/吊销) │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 数据中台 │ │ │ │ 采集: Canal + Flink CDC + Filebeat │ │ │ │ 存储: HDFS + Hive + ClickHouse │ │ │ │ 计算: Spark(批) + Flink(流) │ │ │ │ 治理: Apache Atlas + 自研数据质量平台 │ │ │ │ 服务: 自研OneService(无成熟开源方案) │ │ │ │ BI: Apache Superset + 自研Dashboard │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 业务中台 │ │ │ │ 订单引擎: 自研(核心业务,差异化) │ │ │ │ 价格引擎: 自研(促销规则千变万化) │ │ │ │ 支付中心: 自研核心 + 渠道适配器(微信/支付宝SDK) │ │ │ │ 风控引擎: 自研 + 开源规则引擎(Drools) │ │ │ │ 营销引擎: 自研 + 工作流引擎(Camunda) │ │ │ │ 库存中心: 自研(Redis Lua扣减) │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 监控运维 │ │ │ │ 指标: Prometheus + Grafana │ │ │ │ 日志: Loki / ELK │ │ │ │ 链路: Jaeger / SkyWalking │ │ │ │ 告警: Alertmanager + 自研告警平台 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ CI/CD │ │ │ │ 代码托管: GitLab / Gitea │ │ │ │ CI: Jenkins / GitLab CI / ArgoCD │ │ │ │ 制品库: Harbor / Nexus │ │ │ │ 部署: ArgoCD(GitOps) / Spinnaker │ │ │ └────────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────┘

七、选型决策记录

7.1 选型文档模板

# 技术选型决策记录(ADR) ## 决策标题 API网关选型: Kong vs APISIX ## 背景 中台需要统一API网关,管理所有业务中台API ## 候选方案 1. Kong(开源版) 2. APISIX(开源版) 3. Spring Cloud Gateway ## 评估维度 | 维度 | Kong | APISIX | SCG | |------|------|--------|-----| | 性能 | 3万QPS | 7万QPS | 1万QPS | | 生态 | 100+插件 | 80+插件 | 有限 | | 团队匹配 | Lua(需学习) | Lua(需学习) | Java(熟悉) | | 动态路由 | 支持 | 实时 | 需重启 | ## 决策 选择: APISIX 理由: 1. 性能最优,满足未来3年流量增长 2. 配置实时生效,运维效率高 3. 团队可接受Lua学习成本(2周上手) 4. 开源社区活跃,CNCF毕业项目 ## 风险与对策 - Lua学习曲线: 安排2周培训,团队内部经验分享 - APISIS版本迭代快: 锁定LTS版本,半年升级一次 ## 决策人 中台技术委员会 日期: 2026-06-28

要点回顾

  1. 六维评估模型:业务匹配度(30%) + 团队能力(20%) + TCO(20%) + 社区活跃度(10%) + 生态兼容(10%) + 风险可控(10%)
  2. 开源 vs 自研原则:基础设施和技术中台优先开源,业务中台核心能力自研,认证和数据中台采用"开源引擎+自研平台"混合策略
  3. 各层选型:网关(Kong/APISIX)、MQ(RocketMQ/Kafka)、缓存(Redis Cluster)、配置(Nacos)、IAM(Keycloak/Casdoor)、数据(Hive+ClickHouse+Flink)
  4. TCO分析:开源方案5年TCO约420万,自研约950万,商业方案不确定
  5. 避免陷阱:不追新、不Star崇拜、不过度自研、必做PoC验证、制定升级计划
  6. 决策记录:每个选型决策用ADR文档记录,包括背景、候选、评估、决策、风险

下一篇预告

下一篇(也是最后一篇)将给出企业级中台建设路线图——从战略规划、组织搭建、MVP验证到全面铺开的全流程指南,帮助团队从零到一建设中台。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询