テンプレートフォルダへのこれらの追加を提案します。
- 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 は、おそらくこれまでに作られた最も高度なオープンソースアプリケーションでしょう。この最先端のシステムを支えるチームに感謝します。