跳转到内容

Aeron 的目标与组件

Aeron 围绕三个不可妥协的性能目标构建,并以三个组件组成的分层技术栈交付。理解这两点之后,本指南后续的每一项调优决策都能找到对应的落脚点。

Aeron 的设计由三个无法相互妥协的目标驱动:

  1. 超低延迟 —— 把消息从发送到接收的时间降到最低,目标是个位数微秒级。
  2. 高吞吐 —— 在每条流上持续支撑每秒数百万条消息。
  3. 可预测的延迟(p99 及更高分位) —— 尾延迟比平均值更重要。一个平均很快、但在 p99 出现尖峰的系统,对交易类负载而言并不可靠。

前两个目标关乎速度与吞吐量,第三个目标关乎一致性——而这正是定义 Aeron 的关键所在。

在阅读性能调优一节中的每一个旋钮时,都请带着这个视角:一个能降低 p50、却拉大与 p99 之间差距的设置,对交易类负载而言通常是错误的取舍。降低基线开销有助于 p50;而消除波动——缓存未命中、队列深度、上下文切换——才是保护 p99 的关键。

开源版本包含三个相互关联的组件,按分层架构排列:

┌─────────────────┐
│ 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。本指南刻意在内部机制上保持精简,专注于运维层面:调优、度量、监控与恢复。