Обзор масштабирования: вертикальное и горизонтальное масштабирование
Данная архитектура является примером системы на основе клиент-сервер. В этом случае есть клиент, который отправляет запросы на сервер, а затем клиент получает ответ от сервера соответственно, но когда количество пользователей / клиентов увеличивается, нагрузка на сервер чрезвычайно увеличивается, что затрудняет выполнение серверу эффективно и, следовательно, становится медленным. Следовательно, важно сделать сервер масштабируемым таким образом, чтобы мощность сервера увеличивалась в соответствии с увеличением трафика без каких-либо сбоев.
Масштабирование
Его можно определить как процесс расширения существующей конфигурации (серверов / компьютеров) для обработки большого количества пользовательских запросов или управления объемом нагрузки на сервер. Этот процесс называется масштабируемостью. Это можно сделать либо путем увеличения текущей конфигурации системы (увеличение ОЗУ, количества серверов), либо путем увеличения мощности конфигурации. Масштабируемость играет жизненно важную роль при проектировании системы, поскольку она помогает более эффективно и быстро реагировать на большое количество пользовательских запросов.
Есть два способа сделать это :
- Вертикальное масштабирование
- Горизонтальное масштабирование
Вертикальное масштабирование
Он определяется как процесс увеличения емкости отдельной машины за счет добавления дополнительных ресурсов, таких как память, хранилище и т. Д., Для увеличения пропускной способности системы. Никаких новых ресурсов не добавляется, а возможности существующих ресурсов становятся более эффективными. Это называется вертикальным масштабированием . Вертикальное масштабирование также называется подходом увеличения масштаба.
Пример: MySQL
Преимущества вертикального масштабирования
- Легко реализовать
- Снижение затрат на программное обеспечение, поскольку не добавляются новые ресурсы
- Меньше усилий требуется для обслуживания этой единой системы
Недостатки вертикального масштабирования
- Одноточечный отказ
- Поскольку при сбое системы (сервера) время простоя велико, потому что у нас есть только один сервер
- Высокий риск аппаратных сбоев
Пример вертикального масштабирования в реальном времени
Когда трафик увеличивается, производительность сервера снижается. Первое возможное решение, которое есть у каждого, - это увеличить мощность своей системы. Например, если раньше использовалось 8 ГБ ОЗУ и 128 ГБ на жестком диске, то теперь при увеличении трафика снижается мощность системы. Таким образом, возможным решением является увеличение существующей оперативной памяти или хранилища на жестком диске, например, ресурсы могут быть увеличены до 16 ГБ ОЗУ и 500 ГБ жесткого диска, но это не окончательное решение, поскольку через некоторое время эти емкости достигнет точки насыщения.
Горизонтальное масштабирование
Он определяется как процесс добавления большего количества экземпляров одного и того же типа к существующему пулу ресурсов, а не увеличение емкости существующих ресурсов, как при вертикальном масштабировании. Такое масштабирование также помогает снизить нагрузку на сервер. Это называется горизонтальным масштабированием.
Горизонтальное масштабирование также называется подходом горизонтального масштабирования.
В этом процессе увеличивается количество серверов, а не отдельная мощность сервера. Это делается с помощью балансировщика нагрузки, который в основном направляет запросы пользователей на разные серверы в зависимости от доступности сервера. Тем самым повышается общая производительность системы. Таким образом, весь процесс распределяется между всеми серверами, а не зависит только от одного сервера.
Пример: NoSQL, Cassandra и MongoDB.
Преимущества горизонтального масштабирования
- Отказоустойчивость означает, что в таком масштабе нет единой точки отказа, потому что здесь 5 серверов вместо 1 мощного. Так что, если какой-либо из серверов выйдет из строя, будут другие серверы для резервного копирования. Принимая во внимание, что при вертикальном масштабировании происходит сбой в одной точке, то есть: если сервер выходит из строя, вся служба останавливается.
- Низкая задержка: под задержкой понимается, насколько поздно или с задержкой обрабатывается наш запрос.
- Встроенное резервное копирование
Недостатки горизонтального масштабирования
- Нелегко реализовать, так как в этой шкале есть несколько компонентов.
- Стоимость высока
- Требуются сетевые компоненты, такие как маршрутизатор, балансировщик нагрузки
Пример горизонтального масштабирования в реальном времени
Например, если существует система с объемом ОЗУ 8 ГБ и в будущем потребуется 16 ГБ ОЗУ, то вместо увеличения объема ОЗУ с 8 ГБ до 16 ГБ, аналогичные экземпляры с 8 ГБ. ГБ ОЗУ можно использовать для удовлетворения требований.
Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции системного дизайна с отраслевыми экспертами. Присоединяйтесь к курсу системного дизайна, чтобы посещать живые занятия.