Технологии кластеризации данных

Время на прочтение: 2 минуты
31 апреля 2024

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