Сообщение Re[2]: Как работается в High load ? от 23.09.2025 10:08
Изменено 23.09.2025 10:09 gyraboo
Re[2]: Как работается в High load ?
Здравствуйте, Miroff, Вы писали:
M>Классического хайлоада больше нет. С одной стороны железо сделалось очень мощным, а с другой нагрузки перестали экспоненциально расти, как в эпоху развития интернета.
Согласен. Если раньше хай лоад был искусством профилирования и придумывания велосипедов, то сейчас в Java EE появился стандартный реактивный стэк Spring Reactor, основанный на идеях высокой нагрузки от Netflix, который из коробки умеет в хай лоад.
Есть всякие библиотеки типа Recilience7j с наборами хайлоад-паттерном, которые условно позволяют превратить в хайлоад даже обычное старое легаси-приложение на блокирующем стеке, просто обвешав его снаружи аннотациями Resilience4j.
Главное понимать разницу межуд блокирующих стэком и реактивным, и понимать когда хватает и обычного блокирующего стэка (типа, если нагрузка не превышает 500 rps, то и блокирующий стэк справится). Если же все сервисы городить на реактивном стэке, это получится сложный в сопровождении золотой унитаз.
То же и с нагрузкой на БД, можно обойтись реляционной БД, в 90;% спасают обычные индексы, а если данных много, то сделав обычное прозрачное партицирование таблиц партманом, а не городить NoSQL базы, т.к. за нереляционую модель нужно платить (сложностью кода, слабой целостностью данных и рассинхроном на узлах по теореме CPA)
M>Классического хайлоада больше нет. С одной стороны железо сделалось очень мощным, а с другой нагрузки перестали экспоненциально расти, как в эпоху развития интернета.
Согласен. Если раньше хай лоад был искусством профилирования и придумывания велосипедов, то сейчас в Java EE появился стандартный реактивный стэк Spring Reactor, основанный на идеях высокой нагрузки от Netflix, который из коробки умеет в хай лоад.
Есть всякие библиотеки типа Recilience7j с наборами хайлоад-паттерном, которые условно позволяют превратить в хайлоад даже обычное старое легаси-приложение на блокирующем стеке, просто обвешав его снаружи аннотациями Resilience4j.
Главное понимать разницу межуд блокирующих стэком и реактивным, и понимать когда хватает и обычного блокирующего стэка (типа, если нагрузка не превышает 500 rps, то и блокирующий стэк справится). Если же все сервисы городить на реактивном стэке, это получится сложный в сопровождении золотой унитаз.
То же и с нагрузкой на БД, можно обойтись реляционной БД, в 90;% спасают обычные индексы, а если данных много, то сделав обычное прозрачное партицирование таблиц партманом, а не городить NoSQL базы, т.к. за нереляционую модель нужно платить (сложностью кода, слабой целостностью данных и рассинхроном на узлах по теореме CPA)
Re[2]: Как работается в High load ?
Здравствуйте, Miroff, Вы писали:
M>Классического хайлоада больше нет. С одной стороны железо сделалось очень мощным, а с другой нагрузки перестали экспоненциально расти, как в эпоху развития интернета.
Согласен. Если раньше хай лоад был искусством профилирования и придумывания велосипедов, то сейчас в Java EE появился стандартный реактивный стэк Spring Reactor, основанный на идеях высокой нагрузки от Netflix, который из коробки умеет в хай лоад.
Есть всякие библиотеки типа Recilience7j с наборами хайлоад-паттернов (https://proselyte.net/protective-patterns/), которые условно позволяют превратить в хайлоад даже обычное старое легаси-приложение на блокирующем стеке, просто обвешав его снаружи аннотациями Resilience4j для соблюдения правил манифеста реактивных систем (https://www.reactivemanifesto.org/ru).
Главное понимать разницу межуд блокирующих стэком и реактивным, и понимать когда хватает и обычного блокирующего стэка (типа, если нагрузка не превышает 500 rps, то и блокирующий стэк справится). Если же все сервисы городить на реактивном стэке, это получится сложный в сопровождении золотой унитаз.
То же и с нагрузкой на БД, можно обойтись реляционной БД, в 90;% спасают обычные индексы, а если данных много, то сделав обычное прозрачное партицирование таблиц партманом, а не городить NoSQL базы, т.к. за нереляционую модель нужно платить (сложностью кода, слабой целостностью данных и рассинхроном на узлах по теореме CPA)
M>Классического хайлоада больше нет. С одной стороны железо сделалось очень мощным, а с другой нагрузки перестали экспоненциально расти, как в эпоху развития интернета.
Согласен. Если раньше хай лоад был искусством профилирования и придумывания велосипедов, то сейчас в Java EE появился стандартный реактивный стэк Spring Reactor, основанный на идеях высокой нагрузки от Netflix, который из коробки умеет в хай лоад.
Есть всякие библиотеки типа Recilience7j с наборами хайлоад-паттернов (https://proselyte.net/protective-patterns/), которые условно позволяют превратить в хайлоад даже обычное старое легаси-приложение на блокирующем стеке, просто обвешав его снаружи аннотациями Resilience4j для соблюдения правил манифеста реактивных систем (https://www.reactivemanifesto.org/ru).
Главное понимать разницу межуд блокирующих стэком и реактивным, и понимать когда хватает и обычного блокирующего стэка (типа, если нагрузка не превышает 500 rps, то и блокирующий стэк справится). Если же все сервисы городить на реактивном стэке, это получится сложный в сопровождении золотой унитаз.
То же и с нагрузкой на БД, можно обойтись реляционной БД, в 90;% спасают обычные индексы, а если данных много, то сделав обычное прозрачное партицирование таблиц партманом, а не городить NoSQL базы, т.к. за нереляционую модель нужно платить (сложностью кода, слабой целостностью данных и рассинхроном на узлах по теореме CPA)