PaaS 中间件全景导图
什么是 PaaS 中间件
PaaS(Platform as a Service)中间件是构建在基础设施之上、应用程序之下的一层软件基础设施。它屏蔽了分布式系统的复杂性,为上层业务提供通信、存储、治理、可观测等能力。
┌─────────────────────────────────────────────────────────┐
│ 业务应用层 │
├─────────────────────────────────────────────────────────┤
│ 消息队列 │ 注册/配置 │ API网关 │ 服务网格 │
│ 缓存中间件 │ 数据库中间件 │ 对象存储 │ 可观测性 │
├─────────────────────────────────────────────────────────┤
│ 容器编排层(Kubernetes) │
├─────────────────────────────────────────────────────────┤
│ 基础设施层(物理机/虚拟机/云) │
└─────────────────────────────────────────────────────────┘中间件分类全景
📨 消息队列(Message Queue)
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| Kafka | 分布式消息流平台 | 高吞吐、持久化、消息回放、流处理 |
| RabbitMQ | AMQP 消息代理 | 灵活路由、插件生态、管理 UI |
| RocketMQ | 金融级消息队列 | 顺序消息、事务消息、延迟消息 |
| Apache Pulsar | 云原生消息流 | 存算分离、多租户、Geo-Replication |
适用场景:异步解耦、流量削峰、事件驱动架构、微服务通信
🗂️ 注册中心 & 配置中心
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| Nacos | 服务发现 + 配置 | AP/CP 可切换、命名空间隔离 |
| Consul | 多数据中心服务网格 | 健康检查、KV 存储、Connect |
| Apollo | 分布式配置中心 | 灰度发布、权限管控、审计日志 |
| etcd | 强一致性 KV | Raft 协议、Watch 机制、K8s 基石 |
🔀 API 网关
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| Kong | 云原生 API 网关 | 插件市场、DB-less 模式、混合部署 |
| APISIX | 高性能 API 网关 | 动态路由、etcd 配置、Lua 插件 |
核心能力:认证鉴权、限流熔断、协议转换、灰度发布、流量镜像
🕸️ 服务网格(Service Mesh)
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| Istio | 控制平面 | 流量管理、mTLS、策略执行 |
| Envoy | 数据平面代理 | L7 代理、xDS 协议、高性能 |
⚡ 缓存中间件
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| Redis | 内存数据结构存储 | 丰富数据类型、Cluster、Sentinel |
| Memcached | 分布式内存缓存 | 简单高效、多线程、一致性哈希 |
🛢️ 数据库中间件
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| ShardingSphere | 分库分表框架 | JDBC/Proxy 双模式、分布式事务 |
| MyCat | MySQL 代理中间件 | 透明分片、读写分离 |
| Vitess | MySQL 水平扩展 | YouTube 出品、VTGate 路由 |
🗄️ 对象 & 块存储
| 中间件 | 定位 | 核心特性 |
|---|---|---|
| MinIO | 高性能对象存储 | S3 兼容、纠删码、分布式模式 |
| Ceph | 统一分布式存储 | CRUSH 算法、RBD/CephFS/RGW |
🔭 可观测性(Observability)
三大支柱:Metrics(指标)、Logs(日志)、Traces(链路追踪)
| 工具 | 类型 | 定位 |
|---|---|---|
| Prometheus + Grafana | Metrics | 时序数据采集与可视化 |
| ELK Stack | Logs | 日志采集、存储、分析 |
| Jaeger / Zipkin | Traces | 分布式链路追踪 |
| OpenTelemetry | 标准 | 统一可观测性数据规范 |
📦 容器 & 编排
| 工具 | 定位 |
|---|---|
| Kubernetes | 容器编排平台,中间件运行基础 |
| Helm | K8s 应用包管理器 |
| Argo CD | GitOps 持续交付 |
中间件选型核心维度
1. 一致性要求 → CP(etcd/Zookeeper)vs AP(Nacos/Consul)
2. 吞吐量要求 → Pulsar/Kafka > RocketMQ > RabbitMQ
3. 延迟要求 → Redis(微秒级)> Memcached > 磁盘存储
4. 运维复杂度 → 托管服务 < 单机 < 集群 < 多数据中心
5. 生态兼容性 → 与现有技术栈的集成成本
6. 云原生程度 → 是否支持 K8s Operator、Helm 部署学习路径建议
入门阶段
└── Redis 基础 → RabbitMQ 基础 → Nacos 服务发现
进阶阶段
└── Redis Cluster → RocketMQ 事务消息 → ShardingSphere 分库分表
高阶阶段
└── Istio 服务网格 → OpenTelemetry 全链路 → Kubernetes Operator