Merge pull request 'tepechin_kirill_lab_7' (#51) from tepechin_kirill_lab_7 into main

Reviewed-on: http://student.git.athene.tech/Alexey/DAS_2023_1/pulls/51
This commit is contained in:
Alexey 2023-12-28 11:16:45 +04:00
commit 46ae5b2736

View File

@ -0,0 +1,12 @@
## Балансировка нагрузки в распределённых системах
Балансировка нагрузки играет ключевую роль в обеспечении эффективности и устойчивости распределённых систем. В контексте Java существует ряд алгоритмов и методов для реализации этого процесса.
Одним из наиболее распространенных методов является Round Robin, при котором запросы распределяются между узлами системы по круговому принципу. Еще одним популярным вариантом является Least Connections, при котором новый запрос направляется к узлу с наименьшим числом активных соединений.
Существует множество открытых технологий для балансировки нагрузки. Примерами могут служить Apache Camel, который предоставляет гибкие возможности маршрутизации и балансировки, а также Netflix Ribbon, библиотека для динамической балансировки нагрузки в микросервисных архитектурах. Nginx также может выполнять функции балансировки нагрузки.
Балансировка нагрузки на базах данных - это процесс распределения запросов к базе данных между несколькими серверами для улучшения производительности, масштабируемости и отказоустойчивости системы. Для этого могут использоваться методы репликации данных, шардирование и кэширование. Наприме, в java разработчики могут воспользоваться такими библиотеками как Hibernate Shards или MyBatis.
Реверс-прокси является важным элементом балансировки нагрузки, предоставляя промежуточное звено между клиентами и серверами. Чаще всего используется библиотека NGINX, которая предоставляет возможности для распределения трафика, обработки SSL и кэширования.
В целом, эффективная балансировка нагрузки в распределённых системах требует комплексного подхода, объединяя алгоритмы, технологии и инструменты, чтобы обеспечить высокую производительность и надежность системы.