Merge pull request 'putilin_pavel_lab_8' (#345) from putilin_pavel_lab_8 into putilin_pavel_lab_7
Reviewed-on: #345
This commit is contained in:
commit
77e463d83b
49
putilin_pavel_lab_8/README.md
Normal file
49
putilin_pavel_lab_8/README.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
### Устройство распределённых систем
|
||||||
|
|
||||||
|
Распределённая система — это набор программ или сервисов, которые работают вместе,
|
||||||
|
но находятся на разных компьютерах. Такие системы позволяют решать сложные задачи,
|
||||||
|
разбивая их на более простые части. Например, если взять социальную сеть,
|
||||||
|
то отдельные сервисы могут отвечать за сообщения, публикации или рекламу.
|
||||||
|
Это похоже на слаженную работу команды: каждый делает своё дело, но результат общий.
|
||||||
|
|
||||||
|
#### Почему выбирают распределённый подход?
|
||||||
|
|
||||||
|
Когда система становится слишком большой, поддерживать её как единое целое становится сложно.
|
||||||
|
Представьте огромный монолит: любое изменение может сломать что-то ещё.
|
||||||
|
В распределённых системах можно менять или улучшать отдельные сервисы,
|
||||||
|
не трогая остальные. Кроме того, если один сервис выйдет из строя, остальная система продолжит работать.
|
||||||
|
|
||||||
|
#### Для чего нужны оркестраторы?
|
||||||
|
|
||||||
|
Оркестраторы помогают распределять задачи между сервисами,
|
||||||
|
чтобы они работали согласованно. Например, они запускают новые экземпляры сервисов,
|
||||||
|
если нагрузка увеличилась, или перезапускают их в случае ошибки.
|
||||||
|
Без них управлять сотнями мелких сервисов вручную было бы очень трудно.
|
||||||
|
Конечно, сами оркестраторы добавляют немного головной боли, но они того стоят.
|
||||||
|
|
||||||
|
#### Зачем очереди сообщений?
|
||||||
|
|
||||||
|
Очереди нужны, чтобы сервисы могли обмениваться задачами,
|
||||||
|
как сотрудники офиса передают друг другу записки.
|
||||||
|
Например, один сервис обрабатывает заказы, а другой — отправляет уведомления.
|
||||||
|
Если заказы приходят быстрее, чем их успевают обрабатывать,
|
||||||
|
очередь помогает не терять данные и обрабатывать всё по мере готовности.
|
||||||
|
|
||||||
|
#### Преимущества и недостатки распределённых систем
|
||||||
|
|
||||||
|
Главный плюс — гибкость. Можно улучшать отдельные части,
|
||||||
|
не затрагивая всю систему. А ещё такие системы проще масштабировать:
|
||||||
|
если чего-то не хватает, просто добавляешь мощности туда, где это нужно.
|
||||||
|
Но есть и минусы. Например, сложность:
|
||||||
|
сервисы должны "разговаривать" друг с другом через сеть, а это дополнительные ошибки и задержки.
|
||||||
|
|
||||||
|
#### Нужны ли параллельные вычисления?
|
||||||
|
|
||||||
|
Параллельные вычисления полезны, когда нужно делать много одинаковых задач.
|
||||||
|
Например, обработка большого объёма данных или сложные расчёты.
|
||||||
|
Но если одна задача зависит от другой, параллельность может только всё усложнить.
|
||||||
|
Тут уже важен баланс — где стоит делить задачи, а где нет.
|
||||||
|
|
||||||
|
Распределённые системы — это как пазл. Каждый кусочек важен,
|
||||||
|
но собрать их вместе так, чтобы всё работало идеально, — это искусство.
|
||||||
|
Однако, несмотря на сложности, такой подход открывает огромные возможности
|
Loading…
Reference in New Issue
Block a user