問題タブ [redis-sentinel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - StackExchange.Redis を使用して Redis センチネル アーキテクチャをサポートするにはどうすればよいですか?
私のアプリケーションはStackExchange.Redis
パッケージを使用し、高可用性と障害をサポートするためにセンチネル アーキテクチャの使用を開始しました。
ConnectionMultiplexer
Sentinel アーキテクチャを使用しているときにオブジェクトを使用する正しい方法を見つけようとして、Web を検索しましたが、有用な答えを実際に見つけることができませんでした。
まだサポートしていない、または部分的にサポートしていると言う投稿もあれば、すべての redis 接続アドレスを接続文字列に追加するようにと言うものもあれば、イベントをサブスクライブすることでカスタム実装を提供したと言うものもあります。
では、ConnectionMultiplexer
この種のアーキテクチャはサポートされていますか?
答えが「はい」の場合、接続文字列はどのようになりますか?
redis - マスターとスレーブのオフセットはredisで何を意味しますか?
Sentinel を使用して管理されている redis スレーブのグループで redis レプリケーションの待機時間を監視するスクリプトを作成しています。コマンドの結果は次のINFO replication
ようになっています。
各スレーブの は、これまでに複製されたデータの量の尺度であると考えていたので、さまざまなスレーブのと の値offset
の差を見て、まだ複製されていないデータの量を判断できました。ただし、上記の出力では、 と のオフセットは両方ともマスターよりも高くなっています。これらの数字の意味を誤解していませんか?master_repl_offset
offset
slave0
slave2
redis - Sentinel 構成ファイル
Sentinel にマスターを追加するときは、いつも編集sentinel.conf
でエントリを追加しますが、アプリケーションが別のユーザー (Sentinel) によって書き換えられていることがよくわかります。
構成ファイルを手動で編集せずにホストを Sentinel に追加する、より適切で効率的な方法があるかどうか疑問に思っています。
redis - redis センチネルの前でロードバランサーを使用できますか?
私たちはコンテナ環境 (Kubernetes) を実行しており、多数の redis インスタンスを監視する一連の redis センチネルを持っています。
コンテナ化された環境であるため、構成はほとんど動的です。センチネル コンテナが壊れたり、別のコンテナに置き換わったりする可能性があります。
これは、アプリケーションの構成に問題を引き起こします。通常、静的セットアップでは、センチネルのすべてのアドレスをクライアントに提供し、クライアントはそれを処理します。凍結されたコンテナーでは、環境が変化すると構成が古くなります。
これを解決するために、redis センチネルの前でロード バランサーを使用できます。このようにして、基礎となるコンテナー/IP が変更された場合でも、アプリケーション構成は引き続き有効です。
センチネルが他のセンチネルを決して忘れないことは承知していますが (スレーブも同様です)、変更が発生したときにそれらをフラッシュできます。
私たちは今日これを使用しており、副作用を感じていませんが、もちろん、これが原因で何か問題が発生するリスクがあるかどうかを知りたい.
問題は、大きな問題なく redis センチネルの前でロード バランサーを使用できるかどうかです。
docker - Kubernetes Redis HA とコンテナー外のものへの redis の公開
私は docker と kubernetes を学ぼうとしています。私がやろうとしていることの 1 つは、Sentinel で Redis をセットアップし、redis をコンテナの外のものに公開することです。
https://github.com/kubernetes/kubernetes/tree/master/examples/storage/redisに従って、redis とセンチネルのセットアップを取得するのは非常に簡単でした 。
しかし、私の次の望みは、コンテナの外部にある redis にアクセスできるようにすることであり、誰がセンチネルとマスター ポッドを公開するのかわかりません。