Технологии кластеризации данных
Время на прочтение: 2 минуты
31 апреля 2024
В 1С-Битрикс 10+ версии существует возможность задействовать технологии кластеризации. Благодаря данному инструменту достигается высокая производительность и доступность веб-проекта. Рассмотрим наиболее популярные и эффективные из них: 1)
Вертикальный шардинг.
Разделение одной БД веб-приложения на две и более за счёт выделения отдельных модулей, сохраняя логику функционирования веб-приложения. Теперь можно вынести часто применяемые модули «Поиск» и «Веб-аналитика» на собственное «железо».
2)
Репликация.
Наиболее часто используется схема master-slave, где: Master – главный сервер БД, где собираются все данные и вносятся в них все изменения. Slave – дополнительный сервер БД, куда копируются все данные из мастера и откуда их следует читать. Таких серверов может быть много. Репликация дает возможность разгрузить главный сервер за счёт переноса операций чтения на slave.
3)
Распределённый кэш данных ( memcached ).
Дает возможность кэшировать данные в оперативной памяти большого числа доступных серверов. Распределение осуществляется с помощью сегментирования данных по значению хэша ключа по аналогии с сокетами хэш-таблицы. При использовании ключа данных клиентская библиотека вычисляет хэш и применяет его в целях выбора соответствующего сервера. Сбой сервера воспринимается как ошибка кэша. Таким образом за счет наращивания числа memcached серверов и возможности выполнять их горячую замену возможно повышать отказоустойчивость комплекса. Особенно важно надежное и масштабируемое кэширование для высоконагруженных проектов.
4)
Кластеризация сессий между веб-серверами.
Необходима при работе группы веб-серверов за балансировщиком. 5)
Кластеризация файлов веб-серверов.
Необходима для автоматической синхронизации данных между машинами.
Очень важным моментом является то, что не требуется доработки кода веб-проекта, потому что технологии кластеризации применяются на уровне ядра платформы 1С-Битрикс.
Если вы не уверены в необходимости технологий кластеризации для вашего проекта, не спешите их реализовывать. Их можно подключить в любой момент без изменения кода проекта. Это сильно удешевит разработку веб-проекта, так как если сразу создавать систему под высокие нагрузки, то в случае её невостребованности вы просто потратите время и деньги.