【中台·技术篇】技术中台概览:API 网关、消息队列、缓存、配置中心的统一规划

前言

技术中台是中台架构的底层支撑,为业务中台和前台提供标准化的技术能力。本篇概述技术中台的各核心组件,以及如何统一规划技术中台建设。


一、技术中台全景

复制代码
┌──────────────────────────────────────────────────────────────┐
│                      业务中台 / 前台                         │
└──────────────────────────┬───────────────────────────────────┘
                           │
┌──────────────────────────┴───────────────────────────────────┐
│                      技术中台                                 │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        │
│  │ 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 网关的建设。

相关推荐
heimeiyingwang5 天前
【中台·战略篇】中台分类详解:技术中台、数据中台、业务中台与组织中台
中台
weixin_470880262 年前
如何建设数据中台(五)——数据汇集—打破企业数据孤岛
经验分享·笔记·数据中台·中台
技术管理修行2 年前
一文带你读懂业务中台与数据中台
数据中台·中台·业务中台
续亮~2 年前
14、如何⽤DDD设计微服务代码模型
java·运维·微服务·设计模式·架构·ddd·中台
续亮~2 年前
3、微服务设计为什么要选择DDD
java·后端·微服务·云原生·架构·中台
续亮~2 年前
1、数字化中台初步认识与建设策略
java·后端·架构·中台
檀越剑指大厂3 年前
数据中台驱动:高效交付之道
中台