Aeron 的目标与组件
Aeron 围绕三个不可妥协的性能目标构建,并以三个组件组成的分层技术栈交付。理解这两点之后,本指南后续的每一项调优决策都能找到对应的落脚点。
Aeron 的设计由三个无法相互妥协的目标驱动:
- 超低延迟 —— 把消息从发送到接收的时间降到最低,目标是个位数微秒级。
- 高吞吐 —— 在每条流上持续支撑每秒数百万条消息。
- 可预测的延迟(p99 及更高分位) —— 尾延迟比平均值更重要。一个平均很快、但在 p99 出现尖峰的系统,对交易类负载而言并不可靠。
前两个目标关乎速度与吞吐量,第三个目标关乎一致性——而这正是定义 Aeron 的关键所在。
在阅读性能调优一节中的每一个旋钮时,都请带着这个视角:一个能降低 p50、却拉大与 p99 之间差距的设置,对交易类负载而言通常是错误的取舍。降低基线开销有助于 p50;而消除波动——缓存未命中、队列深度、上下文切换——才是保护 p99 的关键。
Aeron OSS 的三个组件
Section titled “Aeron OSS 的三个组件”开源版本包含三个相互关联的组件,按分层架构排列:
┌─────────────────┐│ Aeron Cluster │ ← 共识 + 状态机复制(顶层)├─────────────────┤│ Aeron Archive │ ← 持久化录制与回放(中间层)├─────────────────┤│ Aeron Transport│ ← 可靠 UDP 消息传输(基础层)└─────────────────┘- Aeron Transport 位于底层——所有通信都经由它流转。
- Aeron Archive 构建在 Transport 之上,增加了流的录制与回放能力。
- Aeron Cluster 位于顶层,同时使用 Transport 和 Archive 来实现 Raft 共识。
| 层 | 作用 | 构建于 |
|---|---|---|
| Aeron Cluster | 通过 Raft 实现共识与状态机复制 | Transport + Archive |
| Aeron Archive | 流的持久化录制与回放 | Transport |
| Aeron Transport | 可靠的 UDP 消息传输 | ——(可独立使用) |
本页是地图,而非实地。若想深入了解内部机制——传输协议、日志缓冲区(log buffer)、Archive 录制,以及 Raft 选举状态机究竟是如何工作的——请阅读 The Aeron Files。本指南刻意在内部机制上保持精简,专注于运维层面:调优、度量、监控与恢复。