I could have sworn there was a how-to guide for a way to do distributed hosting, either via Docker or via multiple instances of Discourse all hitting a single high availability database server, but I can’t seem to find a guide for it.
Any thoughts? I’m currently serving a small single Discourse site, but am interested in learning as much as I can about scaling and load balancing of Discourse.
Я не смог найти более точных ответов в других местах.
Я понял, что установка Discourse в режиме standalone рекомендуется за её простоту и надёжность в стандартных средах. Однако для обеспечения высокой доступности (HA) некоторые предлагают расширять режим standalone до нескольких контейнеров (29413), другие же рекомендуют полностью переработать архитектуру, разделив компоненты на отдельные развёртывания.
Вопрос 1: Поскольку высокая доступность (HA) подразумевает дублирование сервисов (веб-серверов и баз данных) с надёжным переключением при сбоях, предлагает ли Discourse решение, при котором и веб-сервисы, и базы данных реплицируются внутри контейнеров?
Вопрос 2: Для веб-сервисов необходим балансировщик нагрузки для обеспечения равномерного распределения трафика между экземплярами. Какие рекомендации дают эксперты Discourse и сообщество?
Вопрос 3: Для обеспечения HA в случае контейнеризированной базы данных, какой способ управления репликацией PostgreSQL считается наиболее предпочтительным?
Существует множество способов обработки отказа PostgreSQL. Вы можете использовать любой из них.
Хостинг CDCD использует HA-proxy, насколько мне известно. Вы можете использовать любой балансировщик нагрузки и (в основном) использовать /srv/status как индикатор готовности.