← Maqolalarga qaytish
March 25, 2026
5 daqiqa o'qish

Aeron: HFT sohasining yarmini harakatga keltiruvchi xabar almashish tizimining ichki tuzilishi

Aeron: HFT sohasining yarmini harakatga keltiruvchi xabar almashish tizimining ichki tuzilishi
#aeron
#hft
#low-latency
#messaging
#java
#ipc
#raft
#finance
🛰️
Part 2 of 4 · Collection
Low-Latency Trading Infrastructure

Aeron Messaging Architecture Aeron: Media Driver, umumiy xotira, uch marta buferlangan loglar — past kechikishli xabar almashish standartini belgilagan arxitektura.

Yuqori chastotali savdo uchun xabar almashish tizimlari haqida gap ketganda, har bir suhbatda bitta nom qalqib chiqadi — Aeron. Martin Thompson va Real Logic jamoasi (keyinchalik Adaptive Financial Consulting) tomonidan ishlab chiqilgan Aeron mikrosekundlar hamma narsani hal qiladigan dunyoda ma'lumot uzatishning amaldagi standartiga aylandi.

Ushbu maqolada biz Aeron'ni uning qismlariga ajratamiz: Transport, Archive, Cluster va Sequencer. U ichkaridan qanday ishlashini, kuchli tomonlari qayerda ekanini — va muammolar qayerdan boshlanishini tushuntiramiz.


TL;DR

  • Aeron — past kechikishli ilovalar uchun ochiq kodli (Apache 2.0) xabar almashish tizimi
  • IPC kechikishi: umumiy xotira orqali ~250 ns to'liq aylanish
  • O'tkazuvchanlik: sekundiga 20+ million xabar
  • To'rtta mahsulot: Transport (yadro), Archive (yozib olish/qayta ijro etish), Cluster (Raft), Sequencer (to'liq tartib)
  • Til: Java (asosiy) + C mijozi (kamroq to'liq)
  • Foydalanuvchilar: o'nlab HFT firmalari, market-meykerlar va birjalar

1-qism: Aeron Transport — Yadro

Arxitektura: Media Driver

Aeron Media Driver

Markaziy komponent — Media Driver — barcha ma'lumot uzatishni boshqaradigan alohida jarayon (yoki o'rnatilgan kutubxona). Ilovalar u bilan umumiy xotira orqali (/dev/shm ichidagi mmap fayllari) aloqa qiladi.

Asosiy ma'lumot tuzilmalari:

  • ManyToOneRingBuffer (MPSC) — mijozlardan Media Driver'ga buyruqlar
  • BroadcastTransmitter/Receiver — Media Driver'dan mijozlarga javoblar
  • Log Buffers — ma'lumot uchun uch marta buferlangan append-only log
  • Position Counters — pozitsiyani muvofiqlashtirish uchun atom hisoblagichlar

Ishlash ko'rsatkichlari

Metrika Qiymat
IPC (umumiy xotira) RTT ~250 ns
UDP unicast RTT (bare metal) ~10 us
UDP unicast RTT (bulut, AWS) <100 us
O'tkazuvchanlik >20M msg/sec
Aeron Premium (kernel bypass) P99 39 us

2-qism: Aeron Archive — Yozib olish va qayta ijro etish

Archive xabar oqimlarini istalgan pozitsiyadan qayta ijro etish uchun diskka yozadi. Foydalanish holatlari: tartibga soluvchi audit, nosozlikdan keyin tiklash, backtesting, disk raskadrovka.


3-qism: Aeron Cluster — Raft konsensusi

Raft Consensus

Xabarni yo'qotish qabul qilib bo'lmaydigan tizimlar uchun nosozliklarga chidamli replikatsiyalangan holat mashinasi (matching engine'lar, buyurtmalarni boshqarish). Lider saylash, log replikatsiyasi, qat'iy izchil o'qishlar.


4-qism: Aeron Sequencer — To'liq tartiblash

Kapital bozorlari uchun optimallashtirilgan yangi mahsulot (2025). U barcha hodisalarning yagona global tartibini ta'minlaydi — matching engine'lar va ko'p maydonli market-meyking uchun muhim. Cluster asosida qurilgan. Tijoriy mahsulot (yopiq kod).


Zaif tomonlari

JVM Overhead and GC Pauses

  1. JVM bog'liqligi — safepoint'lar, GC pauzalari, JIT qizdirish
  2. Media Driver qo'shimcha yuki — umumiy xotira orqali qo'shimcha sakrash
  3. Native kernel bypass yo'q — faqat UDP (io_uring, DPDK ochiq kodli versiyada qo'llab-quvvatlanmaydi)
  4. SBE alohida — XML sxemalari, Java kod generatori, alohida build bosqichi
  5. Zero-copy networking yo'q — ma'lumot soketdan log buferga nusxalanadi

Muqobillar

Loyiha Til Kuchli tomonlari Zaif tomonlari
Aeron Java/C Yetuk, jangda sinovdan o'tgan, to'liq ekotizim JVM qo'shimcha yuki, kernel bypass yo'q (ochiq kodli)
ZigBolt Zig 20 ns SPSC, zero-copy kodeklar, GC yo'q Yosh loyiha (v0.2.1)
Chronicle Queue Java Doimiy, kuniga milliardlab xabar JVM GC, og'ir vaznli
ZeroMQ C Oddiy API, ko'plab transportlar Ishonchlilik qatlami yo'q, klasterlash yo'q

Biz Marketmaker.cc'da ZigBolt ishlab chiqdik — Zig'dagi Aeron'ning ochiq kodli muqobili. JVM yo'q, GC yo'q, comptime kodeklar, 20 ns SPSC kechikishi. Batafsil bizning ZigBolt maqolamizda o'qing.


Havolalar:


Iqtibos

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

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Bozordan bir qadam oldinda bo'ling

Sun'iy intellekt savdo tahlillari, bozor tahlili va platforma yangiliklari uchun bizning xabarnomaga obuna bo'ling.

Biz sizning maxfiyligingizni hurmat qilamiz. Istalgan vaqtda obunadan chiqishingiz mumkin.