forked from Alexey/DAS_2024_1
feature: completed lab 8
This commit is contained in:
parent
b182440dc7
commit
ce853de348
33
emelyanov_artem_lab_8/Readme.md
Normal file
33
emelyanov_artem_lab_8/Readme.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Устройство распределенных систем
|
||||
|
||||
> Сложные системы такие как "ВКонтакте" пишутся в **распределенном** стиле, так как это даёт такие преимущества, как:
|
||||
|
||||
- **Масштабируемость**: Разделение на микросервисы позволяет масштабировать только те части системы, которые испытывают высокую нагрузку, не затрагивая другие компоненты.
|
||||
- **Упрощение разработки и поддержки**: Микросервисная архитектура позволяет выделить разные команды для разработки и поддержки каждого отдельного сервиса, что ускоряет разработку и упрощает управление кодовой базой.
|
||||
- **Устойчивость и отказоустойчивость**: Отказ одного микросервиса не ведет к отказу всей системы, что повышает её надежность.
|
||||
- **Гибкость в выборе технологий**: Разные сервисы могут использовать разные языки программирования, базы данных и фреймворки, которые лучше подходят для конкретной задачи.
|
||||
|
||||
> Но у распределённых систем можно выявить и недостатки, такие как:
|
||||
|
||||
- **Сложность разработки и управления**
|
||||
- **Сложность тестирования**
|
||||
- **Задержки в сетевом взаимодействии**
|
||||
|
||||
> Для управления контейнерами в распределенных системах, были созданы специальные системы автоматизации для управления развертыванием. Называется **орекстратор**, и его преимущества заключаются в:
|
||||
|
||||
- **Автоматическое масштабирование**
|
||||
- **Управление отказами**
|
||||
- **Облегчение развертывания и обновления**
|
||||
- **Управление конфигурациями и секретами**
|
||||
|
||||
> Для асинхронного взаимодействия между сервисами придуманы **очереди сообщений**, такие как, RabbitMQ или Kafka:
|
||||
|
||||
- **Сообщения** — это единицы данных, которые сервисы обмениваются друг с другом.
|
||||
|
||||
**Очереди** обеспечивают:
|
||||
|
||||
- **Буферизацию нагрузки**
|
||||
- **Асинхронность**
|
||||
- **Устойчивость к сбоям**
|
||||
|
||||
> Для внедрения параллельных вычислений в распределенную систему, должны быть весомы поводы, такие как, обработка большого кол-ва данных. Но если задачи простые или важна скорость обмена между сервисами, это может быть уже не так полезно.
|
Loading…
Reference in New Issue
Block a user