Я предлагаю внести следующие дополнения в папку шаблонов:
- postgres.master.yml
- postgres.slave.yml
- redis.master.yml
- redis.slave.yml
Таким образом, кластеризация Discourse и все мучения, связанные с этой темой, исчезнут.
Насколько я понимаю, контейнер Redis нельзя дублировать из-за уникальных транзакций шины сообщений, но, по-видимому, его можно реплицировать.
Архитектурные преимущества?
-
Возможность запуска (web.template.yml + web.template.yml + redis.master.yml) на главном узле и только (web.template.yml + postgres.slave.yml + redis.slave.yml) на подчинённом узле БЕЗ обращения к главному узлу, что значительно снижает нагрузку и позволяет использовать возможности балансировщика нагрузки Nginx, расположенного перед всеми узлами.
-
Амбициозная поддержка раздела кластеризации UI в панели администратора станет достижимой!
Discourse, пожалуй, самое продвинутое приложение с открытым исходным кодом, когда-либо созданное. Спасибо команде, стоящей за этим передовым решением.