|
Проектирование высоконагруженных систем
В. А. Рудометкин ООО СТРИМ
Аннотация:
В настоящее время большинство сервисов переходят в онлайн, что позволяет пользователям получать услугу в любое время. Высокая доступность услуги ведет к росту количества пользователей, что влечет за собой повышение нагрузки на систему. Высокая нагрузка оказывает негативное влияние на компоненты системы, что может привести к сбоям функционирования и потери данных. В статье рассмотрено несколько подходов к проектированию и мониторингу, следование которым поможет предотвратить неправильное функционирование системы. Описан наиболее популярный способ распределения области ответственности каждого сервиса, в соответствии с паттерном DDD, применение которого позволит разделить компоненты системы логически по использованию и физически при масштабировании системы. Данный подход будет полезен также при масштабировании команды и позволит независимо работать разработчикам над разными компонентами системы, не мешая друг другу. Интеграция новых людей в проект также будет занимать кратчайшие сроки. При проектировании архитектуры системы стоит уделить внимание и схеме взаимодействия сервисов между собой. Использование паттерна CQRS позволяет разнести чтение и запись в разные компоненты, что в дальнейшем позволяет пользователю быстро получать ответ от системы. Особое внимание в статье уделено мониторингу системы, так как при увеличении размера системы поиск ошибок в системе занимает много ремени, что может привести к долгой недоступности системы, которое повлечет за собой потерю клиентов. Все описанные в статье способы применены на многих проектах, например, МТС ПОИСК. Благодаря правильно спроектированной системе удалось сократить время ожидание ответа сервиса с двух минут до нескольких секунд без потери качества результата, а сложная система мониторинга системы позволяет в режиме реального времени отслеживать все процессы внутри системы и предотвращать аварии. В итоге, в начале проектирования системы следует особое внимание уделить архитектуре, вопросу мониторинга и тестирования системы. Впоследствии эти временные вложения позволят снизить риски потери данных и недоступности работы системы.
Ключевые слова:
высоконагруженная система, DDD, REST, сервера очередей, socket, ELK, CQRS, МТС ПОИСК, проектирование.
Образец цитирования:
В. А. Рудометкин, “Проектирование высоконагруженных систем”, Труды ИСП РАН, 32:6 (2020), 79–86
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp559 https://www.mathnet.ru/rus/tisp/v32/i6/p79
|
Статистика просмотров: |
Страница аннотации: | 283 | PDF полного текста: | 967 | Список литературы: | 23 |
|