前言
技术中台是中台架构的底层支撑,为业务中台和前台提供标准化的技术能力。本篇概述技术中台的各核心组件,以及如何统一规划技术中台建设。
一、技术中台全景
┌──────────────────────────────────────────────────────────────┐
│ 业务中台 / 前台 │
└──────────────────────────┬───────────────────────────────────┘
│
┌──────────────────────────┴───────────────────────────────────┐
│ 技术中台 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ API网关 │ │ 消息队列 │ │ 缓存服务 │ │ 配置中心 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 任务调度 │ │ 日志平台 │ │ 监控告警 │ │ CI/CD │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 容器平台 │ │ 服务网格 │ │ 分布式 │ │ 文件 │ │
│ │ (K8s) │ │ (Istio) │ │ 事务 │ │ 服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────────────────────┘
二、核心组件概览
1. API 网关
职责:
- 统一入口:所有外部请求经过网关
- 路由转发:根据路径/域名路由到后端服务
- 鉴权认证:JWT/OAuth2/API Key
- 限流熔断:保护后端服务
- 协议转换:HTTP ↔ gRPC ↔ WebSocket
- 日志审计:统一请求日志
- 灰度发布:按流量比例路由
选型:
Kong:成熟、插件丰富、Lua 扩展
APISIX:高性能、动态配置、云原生
Spring Cloud Gateway:Java 生态、Spring 集成
Zuul 2:Netflix 出品、Netty 异步
2. 消息队列
职责:
- 异步通信:解耦生产者和消费者
- 削峰填谷:应对流量洪峰
- 事件驱动:领域事件传播
- 最终一致性:跨服务数据一致
选型:
Kafka:高吞吐、日志/流处理场景
RocketMQ:事务消息、顺序消息
RabbitMQ:灵活路由、小规模场景
Pulsar:存算分离、多租户
3. 缓存服务
职责:
- 热点数据缓存:减少数据库压力
- 分布式缓存:跨实例共享
- 会话存储:统一 Session
- 限流计数:分布式计数器
选型:
Redis Cluster:主流方案、数据结构丰富
Redis Sentinel:主从+哨兵、简单高可用
Memcached:纯 KV、高性能
多级缓存:本地+分布式
4. 配置中心
职责:
- 统一配置管理:所有服务配置集中
- 动态推送:配置变更实时生效
- 多环境管理:dev/staging/prod 隔离
- 灰度发布:按 IP/标签灰度推送
选型:
Apollo:携程开源、功能全面
Nacos:阿里开源、注册+配置一体
Spring Cloud Config:Spring 生态
Consul:HashiCorp、服务发现+配置
5. 任务调度
职责:
- 定时任务:Cron 表达式调度
- 分布式调度:多节点分片
- 任务监控:执行状态可视化
- 失败重试:自动重试机制
选型:
XXL-JOB:轻量、易用、Web 管理
ElasticJob:当当开源、弹性分片
SchedulerX:阿里云、云原生
Quartz:Java 生态、成熟
6. 日志平台
职责:
- 日志采集:统一采集各服务日志
- 日志存储:集中存储和检索
- 日志查询:全文检索 + 结构化查询
- 日志告警:异常日志自动告警
选型:
ELK:Elasticsearch+Logstash+Kibana,经典方案
Loki:Grafana 出品、轻量、与 Prom 配合
Flume+Kafka:大数据场景
7. 监控告警
职责:
- 指标采集:Prometheus 拉取
- 告警规则:阈值/异常检测
- 可视化:Grafana Dashboard
- 通知:钉钉/企微/邮件
选型:
Prometheus + Grafana + Alertmanager(标准方案)
见前 20 篇 Prometheus 系列
8. CI/CD
职责:
- 代码构建:编译/打包/镜像
- 自动测试:单元/集成/E2E
- 自动部署:K8s/虚拟机
- 灰度发布:金丝雀/蓝绿
选型:
Jenkins:成熟、插件丰富
GitLab CI:GitLab 集成、YAML 配置
GitHub Actions:GitHub 集成、云原生
ArgoCD:GitOps、K8s 原生
见前 20 篇 CI/CD 系列
三、技术中台建设原则
原则一:标准化
yaml
# 所有组件遵循统一标准
标准:
API规范: RESTful + JSON
认证方式: JWT + OAuth2
配置格式: YAML / properties
日志格式: JSON 结构化
监控协议: Prometheus exposition
部署方式: Docker + K8s
通信协议: HTTP/gRPC
原则二:多租户
yaml
# 各业务线隔离
多租户:
资源隔离: namespace / 独立实例
数据隔离: 逻辑隔离 / 物理隔离
权限隔离: RBAC
配额限制: QPS / 存储 / 连接数
# 示例:Redis 多租户
redis_config:
instance_per_team: false # 共享实例
db_per_team: true # 不同 DB
# team-a → db 0
# team-b → db 1
# team-c → db 2
原则三:自助化
技术中台要提供自助化平台:
┌──────────────────────────┐
│ 自助化平台 Web UI │
├──────────────────────────┤
│ 1. 申请 API 网关路由 │
│ 2. 申请 MQ Topic │
│ 3. 申请 Redis 实例 │
│ 4. 申请配置 Namespace │
│ 5. 部署定时任务 │
│ 6. 查看监控 Dashboard │
│ 7. 查看日志 │
└──────────────────────────┘
目标:业务线 5 分钟自助开通所需资源
原则四:高可用
yaml
# 所有核心组件高可用
高可用要求:
API网关:
replicas: 3+
策略: 无状态,负载均衡
消息队列:
replicas: 3+
策略: 副本+分区
缓存:
replicas: 6+ (Cluster)
策略: Redis Cluster 分片
配置中心:
replicas: 3+
策略: 多节点+数据库
日志平台:
replicas: 3+ (ES)
策略: 分片+副本
监控:
replicas: 2+ (Prometheus HA)
策略: 双副本+Thanos
原则五:可观测
yaml
# 技术中台自身也要被监控
可观测要求:
指标: 每个组件暴露 Prometheus metrics
日志: 统一日志采集
追踪: 链路追踪
Dashboard: 每个组件有专用 Dashboard
告警: 组件故障自动告警
四、建设路线图
阶段 1(1-2 月):基础设施
├── 部署 K8s 集群
├── 部署 Prometheus + Grafana
└── 部署 ELK / Loki
阶段 2(2-3 月):核心组件
├── 部署 API 网关(Kong/APISIX)
├── 部署配置中心(Apollo/Nacos)
├── 部署 Redis Cluster
└── 部署消息队列(Kafka/RocketMQ)
阶段 3(1-2 月):增强组件
├── 部署任务调度(XXL-JOB)
├── 部署 CI/CD(Jenkins/GitLab CI)
└── 部署分布式事务(Seata)
阶段 4(持续):自助化平台
├── 开发自助化 Web UI
├── 开发 SDK/Client
├── 完善文档
└── 持续优化
五、技术选型矩阵
| 组件 | 推荐方案 | 备选 | 选择理由 |
|---|---|---|---|
| API 网关 | APISIX | Kong | 高性能、动态配置、云原生 |
| 消息队列 | RocketMQ | Kafka | 事务消息、顺序、定时 |
| 缓存 | Redis Cluster | Redis Sentinel | 分片、高可用、扩展性 |
| 配置中心 | Nacos | Apollo | 注册+配置一体、简单 |
| 任务调度 | XXL-JOB | ElasticJob | 轻量、Web 管理 |
| 日志 | Loki | ELK | 轻量、与 Grafana 配合 |
| 监控 | Prometheus | - | 云原生标准 |
| CI/CD | GitLab CI | Jenkins | YAML 配置、GitLab 集成 |
| 容器 | K8s | - | 事实标准 |
| 服务网格 | Istio(可选) | Linkerd | 流量管理、可观测 |
要点回顾
- 技术中台 10 个核心组件:网关/MQ/缓存/配置/调度/日志/监控/CI-CD/容器/网格
- 建设原则:标准化、多租户、自助化、高可用、可观测
- 建设路线:基础设施 → 核心组件 → 增强组件 → 自助化平台
- 推荐选型:APISIX + RocketMQ + Redis Cluster + Nacos + XXL-JOB + Loki + Prometheus + GitLab CI + K8s
- 技术中台自身也需要被监控(监控的监控)
下一篇预告
下一篇 【中台·技术篇】API 网关建设:Kong 与 APISIX 选型与落地实践 将深入讲解 API 网关的建设。