皆さん、こんにちは。
セカンダリ/スタンバイのDiscourseのデプロイ方法を教えていただけますか?
これはよくあるトピックだと思っていましたが、何も見つけられませんでした。
そのようなスタンバイDiscourseは、私の考えでは、そのようにセットアップしようとしているように、スレーブ/読み取り専用ノードで実行され、RedisとpgSQLの両方で読み取り専用になるはずです。しかし、Discourseは次のように起動に失敗します。
Redis::CommandError: ERR Error running script (call to f_bcec1d9b3bbcfb089dc0b7316771be9f011872b6): @user_script :8: @user_script : 8: -READONLY You can’t write against a read only replica.
DISCOURSE_SKIP_BOOTSTRAP=yes であってもです。
皆さんはどのようにしていますか?これらはすべてコンテナ内で行われています。そのようなスタンバイDiscourseを、私が試している方法や他のアプローチで、いわゆるHAセットアップを持つことは可能ですか?
pfaffman
(Jay Pfaffman)
2023 年 8 月 12 日午後 12:34
2
HA を実現したいのであれば、Postgres のレプリケーションを設定し、Redis も同様に設定することになるでしょう。ただし、新しい Redis を使い始めることはそれほど大きな問題ではありません。
Postgres のレプリケーションの設定方法については、他のガイドを参照してください。あるいは、RDS に任せることもできます。
次に、2 つの web_only コンテナを設定します (スタンドアロンコンテナから個別の Web およびデータコンテナへの移行 )。
その後、切り替えを処理するために HAProxy などを設定する必要があります。
これは、Discourse の部分で困っているのでない限り、ここで得られるヘルプの範囲を超えています。
私の理解では、マルチマスターの pgSQL に対応する公式のサードパーティ製以外の技術はなく、Redis に適用できるものもさらにありません。
Discourse にそのような環境について通知し、心配しないように、または無視するように伝えることは本当に可能ではないのでしょうか?
もしそれが不可能 で、@devel がこれを読んでいるなら、多くの人が感謝するであろう「Discourse 」をそのように「強化」することを提案します。つまり、必要なチェックはすべて行いますが、失敗せずに、そのような読み取り専用の「データ」で開始して実行されるようにします。