Aeron: Di Dalam Sistem Pesanan Yang Menguasai Separuh Industri HFT

Analisis mendalam tentang Aeron - sistem pesanan daripada Real Logic untuk dagangan frekuensi tinggi. Transport, Archive, Cluster, Sequencer. Apa yang ada di dalamnya, cara ia berfungsi, dan di mana kesesakan berlaku.

Seni Bina Pesanan Aeron Aeron: Media Driver, memori dikongsi, log penimbal tiga kali — seni bina yang menetapkan standard untuk pesanan latensi rendah.

Apabila bercakap tentang sistem pesanan untuk dagangan frekuensi tinggi, satu nama muncul dalam setiap perbincangan — Aeron. Dibangunkan oleh Martin Thompson dan pasukan Real Logic (kemudian Adaptive Financial Consulting), Aeron menjadi standard de facto untuk penghantaran data dalam dunia di mana mikrosaat menentukan segalanya.

Dalam artikel ini, kami mengurai Aeron kepada bahagian-bahagiannya: Transport, Archive, Cluster, dan Sequencer. Kami menerangkan cara ia berfungsi di dalam, di mana kekuatannya terletak — dan di mana masalah bermula.


TL;DR

  • Aeron — sistem pesanan sumber terbuka (Apache 2.0) untuk aplikasi latensi rendah
  • Latensi IPC: ~250 ns round-trip melalui memori dikongsi
  • Daya tampung: 20+ juta mesej sesaat
  • Empat produk: Transport (teras), Archive (rekod/main semula), Cluster (Raft), Sequencer (turutan penuh)
  • Bahasa: Java (utama) + klien C (kurang lengkap)
  • Digunakan oleh: berpuluh-puluh firma HFT, pembuat pasaran, dan bursa

Bahagian 1: Aeron Transport — Teras

Seni Bina: Media Driver

Aeron Media Driver

Komponen utama ialah Media Driver — proses berasingan (atau perpustakaan terbenam) yang menguruskan semua penghantaran data. Aplikasi berkomunikasi dengannya melalui memori dikongsi (fail mmap dalam /dev/shm).

Struktur data utama:

  • ManyToOneRingBuffer (MPSC) — arahan daripada klien ke Media Driver
  • BroadcastTransmitter/Receiver — respons daripada Media Driver ke klien
  • Log Buffers — log tambah sahaja penimbal tiga kali untuk data
  • Position Counters — pembilang atom untuk penyelarasan kedudukan

Prestasi

MetrikNilai
IPC (memori dikongsi) RTT~250 ns
UDP unicast RTT (logam biasa)~10 us
UDP unicast RTT (awan, AWS)<100 us
Daya tampung>20J msg/saat
Aeron Premium (pintasan kernel) P9939 us

Bahagian 2: Aeron Archive — Rekod dan Main Semula

Archive merekodkan aliran mesej ke cakera untuk dimainkan semula dari mana-mana kedudukan. Kes penggunaan: audit kawal selia, pemulihan nahas, backtesting, penyahpepijatan.


Bahagian 3: Aeron Cluster — Konsensus Raft

Konsensus Raft

Mesin keadaan replikasi bertoleransi kesalahan untuk sistem di mana kehilangan mesej tidak boleh diterima (enjin padanan, pengurusan pesanan). Pemilihan pemimpin, replikasi log, bacaan konsisten kukuh.


Bahagian 4: Aeron Sequencer — Turutan Penuh

Produk baharu (2025) yang dioptimumkan untuk pasaran modal. Menyediakan turutan global tunggal bagi semua peristiwa — kritikal untuk enjin padanan dan pembuatan pasaran pelbagai tempat. Dibina di atas Cluster. Produk komersial (sumber tertutup).


Kelemahan

Overhead JVM dan Jeda GC

  1. Kebergantungan JVM — safepoint, jeda GC, pemanasan JIT
  2. Overhead Media Driver — lompatan tambahan melalui memori dikongsi
  3. Tiada pintasan kernel asli — UDP sahaja (io_uring, DPDK tidak disokong dalam sumber terbuka)
  4. SBE berasingan — skema XML, penjana kod Java, langkah binaan berasingan
  5. Tiada rangkaian salinan sifar — data disalin dari soket ke penimbal log

Alternatif

ProjekBahasaKekuatanKelemahan
AeronJava/CMatang, teruji pertempuran, ekosistem penuhOverhead JVM, tiada pintasan kernel (sumber terbuka)
ZigBoltZig20 ns SPSC, codec salinan sifar, tiada GCProjek muda (v0.2.1)
Chronicle QueueJavaBerterusan, berbilion msg/hariGC JVM, berat
ZeroMQCAPI mudah, banyak transportTiada lapisan kebolehpercayaan, tiada pengelompokan

Kami di Marketmaker.cc membangunkan ZigBolt — alternatif Aeron sumber terbuka dalam Zig. Tiada JVM, tiada GC, codec comptime, latensi SPSC 20 ns. Baca lebih lanjut dalam artikel ZigBolt kami.


Pautan:


Petikan

@article{soloviov2026aeron,
  author = {Soloviov, Eugen},
  title = {Aeron: Inside the Messaging System That Powers Half of the HFT Industry},
  year = {2026},
  url = {https://marketmaker.cc/ms/blog/post/aeron-messaging-overview},
  description = {Analisis mendalam seni bina: Aeron Transport, Archive, Cluster, Sequencer.}
}