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