.. | ||
readme.md |
Распределенные системы все больше набирают популярность в наше время. Этому способствуют такие ее качества как:
- Устойчивость и масштабируемость – возможность репликации позволяет поддерживать в работоспособном состоянии всю систему при отказе одного из ее компонентов
- Принцип единой ответственности – реализация каждого элемента системы в виде сервиса, ответственного за что-то одно, упрощает поддержку и дальнейшее развитие системы.
- Увеличение производительности – использование одновременно несколько распределенных сервисов позволяет повысить скорость обработки данных
Оркестраторы призваны обеспечивать мониторинг за состоянием системы и выполнять функции по ее оптимизации: организация быстрого развертывания, балансировка нагрузки. Оркестраторы так же позволяют уведомлять пользователей о возникших проблемах и выполнять сбор, агрегацию и анализ логов. Подобная обработка данных позволяет выявить узкие места системы. Но оркестратор так же требует ресурсы на собственную работу.
Под сообщениями подразумеваются данные, которыми обмениваются сервисы внутри системы. Очереди сообщений обеспечивают асинхронный обмен информацией. Сервис, отправляющий сообщение, взаимодействует не с другим сервисом, а с очередью и ждет ответа, не блокируя собственные процессы. Брокеры сообщений повышают отказоустойчивость такого обмена – они гарантируют доставку сообщения до сервиса-приемника.
На мой взгляд основными преимуществами распределенных приложений являются их масштабируемость и отказоустойчивость. Но в то же время они имеют и достаточно весомые недостатки – сложность их поддержки и реализации, а также сложность обработки и трассировки транзакций.
Параллельные вычисления в подобных системах следует внедрять только в том случае, когда выигрыш от скорости вычислений значительно повышает затраты на выделение ресурсов. Вычислить математические характеристики матрицы, к примеру, может быть оправдано, а вот разнесение высокоуровневой логики может быть неоправданно