Merge pull request 'tepechin_kirill_lab_8' (#52) from tepechin_kirill_lab_8 into main

Reviewed-on: http://student.git.athene.tech/Alexey/DAS_2023_1/pulls/52
This commit is contained in:
Alexey 2023-12-28 11:20:36 +04:00
commit 97f2f1e018

View File

@ -0,0 +1,13 @@
## Устройство распределенных систем
Распределенные системы это сети взаимодействующих компонентов, размещенных на различных узлах или серверах. Их эффективность обусловлена необходимостью обработки больших объемов данных, обеспечения отказоустойчивости и масштабируемости.
Сложные системы, такие как социальные сети (например, ВКонтакте), разрабатываются в распределенном стиле с целью повышения производительности и отказоустойчивости. Каждый сервис выполняет свою задачу, что позволяет масштабировать и обновлять отдельные компоненты системы, независимо от других компонентов. В ВК, например, недавно упал раздел "Новости", но остальной функционал сохранился, т.к раздел новостей это отдельный компонент распределенной системы.
Очереди обработки сообщений играют важную роль в РВ, обеспечивая асинхронную связь между компонентами. Они позволяют избежать блокировок и управлять потоком данных, что особенно полезно при обработке больших объемов информации, что характерно для этих систем.
Кроме преимуществ у РВ имеются и недостатки. Они подвержены сложностям синхронизации данных, управлению консистентностью, требуют более тщательного тестирования и более сложны в разработке и понимании.
Внедрение параллельных вычислений в сложные распределенные системы оправдано при высоконагруженных вычислениях, но может усложнить систему, особенно при низкой вычислительной нагрузке, что может быть избыточным.
В заключение, распределенные системы эффективны в обработке сложных задач, однако требуют тщательного проектирования и управления. Разработчики должны осознавать соотношение между выгодами от таких систем и возникающими сложностями.