TGViewer
YeaHub Tech YeaHub Tech @yeahub_tech · 412 subscribers
Post #219 135
#Backend

🔖Реактивное программирование vs сопрограммы: что выбрать для высокой нагрузки?

В эпоху микросервисов приложения обрабатывают десятки тысяч запросов одновременно. Привычная модель "один поток на запрос" больше не работает — потоки занимают 128-256 КБ памяти каждый, и ресурсы быстро заканчиваются.

Два основных подхода решают эту проблему: реактивное программирование и сопрограммы.


📎 Реактивное программирование

Использует асинхронные функциональные цепочки с операторами типа flatMap, switchIfEmpty, onErrorResume.

Плюсы:
• Высокая эффективность
• Мощные операторы для работы с потоками данных

Минусы:
• Сложность в понимании и отладке
• Любая обработка ошибок превращается в цепочку реактивных операторов
• Пример простого добавления персонажа в Spring WebFlux занимает несколько строк с filter, flatMap и обработкой исключений через Mono.error


📎 Сопрограммы (Coroutines)

Позволяют писать асинхронный код в привычном императивном стиле.

Плюсы:
• Функции помечаются как suspend, но выглядят как обычный последовательный код
• Можно использовать знакомые конструкции: try-catch, if-else
• Тот же функционал добавления персонажа реализуется простым if и оператором ?.let

Минусы:
• Требует изучения концепций приостановки и возобновления


📎 Главное различие

Реактивное программирование требует полной перестройки мышления и кодовой базы под функциональные цепочки.

Сопрограммы позволяют сохранить привычный стиль, просто добавив suspend к методам.


Производительность
Обе концепции показывают сопоставимую производительность — обе минимизируют использование потоков и эффективно масштабируются.


📎 Статья

🎙 Новости

📝 База вопросов
  • 👍 2
More from @yeahub_tech
  1. Oct 9, 2026#Собес #pipeline #ci #stage 🤔 Что происходит при автоматической сборке feature-ветки на s…
  2. Oct 8, 2026#course #задачи #тесты 📚 JavaScript. A3 Задачи Задачи на программирования на языке JavaSc…
  3. Oct 7, 2026#course #начинающие 📚 Твой Golang Твой Golang — это идеальный старт для освоения языка. П…
  4. Oct 5, 2026🧑‍💻 Вопросы с собесов для Node.js Разработчика 1. Как использовать Service Workers для р…
  5. Oct 2, 2026#Собес #transaction #propagation #required 🤔 Что такое propagation у транзакций и какие т…
  6. Oct 1, 2026#book #book 📚 Библия C#. 6-е изд. Автор: Михаил Фленов Это настольная книга программиста,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →