Горизонтальное масштабирование играет большую роль в обеспечении производительности. На первом уровне масштабирования мы делим систему по функциям. Система SimpleOne разделена на четыре группы: клиентский сервер, сервер приложений, сервер баз данных и сервер файлового хранилища.
На следующем уровне осуществляется масштабирование в рамках одной функции. В этой статье мы расскажем, как осуществляется масштабирование сервера приложений в SimpleOne.
Принцип масштабирования
Сервер приложений координирует программу, обрабатывает пользовательские запросы, взаимодействует с БД и файловым хранилищем.
Может возникнуть ситуация, когда не хватает одного сервера приложений. В этом случае систему можно легко масштабировать, просто добавив новые серверы. При этом, так как серверы приложений не хранят данные, а только координируют работу системы, данные останутся консистентными при подключении через любой сервер приложений.
Оптимально распределить ресурсы помогает балансировщик сервера приложений. Задача балансировщика — распределить запросы на отдельные серверы, принять от них ответы и отдать клиенту. Смысл в том, что три сервера могут обработать в три раза больше запросов, чем один, исключая расходы на сеть и на работу балансировщика.
Введение балансировщика позволяет администратору выбирать, на какой сервер пойдут определённые запросы. Например, каждый день в семь утра происходит рассылка отчётов руководителям. По умолчанию система сама распределит нагрузку, но у администраторов есть возможность определить, какие серверы приложений будут использоваться для данных рассылок.
Преимущества горизонтального масштабирования сервера приложений
- Масштабируемость
Так как сервер приложений осуществляет только логику приложения, но не хранит информацию, то пользователи, подключаясь к БД через разные серверы приложений, увидят изменения, сделанные друг другом. Можно без проблем увеличивать количество серверов приложений.
- Отказоустойчивость
Если один сервер перегрузится или выйдет из строя, то балансировщик это определит и перенаправит запросы на другие серверы.
Заключение
Горизонтальное масштабирование даёт большие возможности для обеспечения производительности приложения. За счёт масштабирования сервера приложений система может поддержать одновременную работу большего количества пользователей. Однако влияние масштабирования сервера приложений на производительность системы ограничено, в данном случае «узким» местом системы становится сервер баз данных.