Трейдинг · Клієнтський проєкт

Архітектура ринкових даних із цільовим навантаженням 500 000 одночасних з’єднань

Клієнтський проєкт із портфоліо команди Sellbyx: зменшення накладних витрат на одне з’єднання та масштабування розсилання оновлень у реальному часі без повторення роботи для кожного клієнта.

500 тис.ціль одночасних з’єднань10–50заявлених оновлень/с на з’єднання≈90%заявлене зниження CPU-навантаження
Контекст проєкту

Клієнтський проєкт із портфоліо команди Sellbyx. Ім’я клієнта не розкриваємо; показники наведено за проєктною документацією та звітами команди, без незалежного публічного аудиту.

01 / Завдання

Обмеження, що визначило архітектуру.

Наївна модель виконувала серіалізацію, виділення пам’яті й маршрутизацію окремо для кожного з’єднання. За великого розгалуження розсилки вартість зростала і з обсягом подій, і з кількістю підписників, тому типові абстракції фреймворків ставали вузьким місцем.

02 / Архітектура

Рішення, які змінили систему.

  1. Перенести обробку з’єднань у легкий цикл подій замість окремого важкого шляху виконання для кожного сокета.
  2. Розповсюджувати за темами спільні незмінні буфери, щоб кожне оновлення ринкових даних кодувалося один раз.
  3. Використати компактний бінарний протокол, кільцеві буфери й явне керування потоком даних замість повторних виділень пам’яті для JSON.
  4. Налаштувати мережевий контур і побудувати модель потужності за виміряними витратами пам’яті та CPU на з’єднання.

03 / Результат

Що вдалося створити.

Архітектуру спроєктували для підтримки 500 000 одночасних з’єднань у невеликому кластері зі збереженням операційного резерву. Це задокументована проєктна ціль; незалежний аудит клієнт не публікував.

Прямий контакт із командою проєкту

Розкажіть про продукт або систему, яку потрібно створити, масштабувати чи відновити.

Обговорити проєкт