
前言中台建设的技术选型是一个贯穿始终的关键决策——用开源还是自研选哪个开源项目自研做到什么程度选错了轻则返工、重则项目失败。这不是一个纯技术问题而是涉及团队能力、预算周期、业务特性的综合判断。本文将系统性地建立一个中台技术选型决策框架从评估维度、选型方法论到各层具体方案对比帮助团队在面对开源 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种) │ 丰富 │ 丰富扩展类型 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 持久化 │ RDBAOF │ RDBAOF │ 多级持久化 │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 运维难度 │ 中 │ 低 │ 低(云托管) │ ├──────────────┼──────────────────┼──────────────────┼──────────────────┤ │ 成本 │ 自建(人力机器) │ 自建 │ 按量付费 │ └──────────────┴──────────────────┴──────────────────┴──────────────────┘ 推荐: • 自建中台 → 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要点回顾六维评估模型业务匹配度(30%) 团队能力(20%) TCO(20%) 社区活跃度(10%) 生态兼容(10%) 风险可控(10%)开源 vs 自研原则基础设施和技术中台优先开源业务中台核心能力自研认证和数据中台采用开源引擎自研平台混合策略各层选型网关(Kong/APISIX)、MQ(RocketMQ/Kafka)、缓存(Redis Cluster)、配置(Nacos)、IAM(Keycloak/Casdoor)、数据(HiveClickHouseFlink)TCO分析开源方案5年TCO约420万自研约950万商业方案不确定避免陷阱不追新、不Star崇拜、不过度自研、必做PoC验证、制定升级计划决策记录每个选型决策用ADR文档记录包括背景、候选、评估、决策、风险下一篇预告下一篇也是最后一篇将给出企业级中台建设路线图——从战略规划、组织搭建、MVP验证到全面铺开的全流程指南帮助团队从零到一建设中台。