0


2 つのphp サーバーマスター/スレーブとして実行されて
いる 2 つの redis サーバー
1 つのログ サーバー (すべての種類のログを elastcisearch に保存)

Redis サーバーの自動フェイルオーバーを実装したいと考えています。現在、php サーバーでは redis マスター アドレスがハードコードされています。

また、マスターからの redis 入力を含む logstash インスタンスを持つログ サーバーでは、logstash 構成でもハードコーディングされます。

両方の redis サーバーに redis センチネルをインストールしましたが、正常に動作しています。

しかし、問題はphpとlogstashでマスターを取得する方法であるか、それが正しい方法ではありません.

PHPの場合、このクライアントラッパーを見つけましたhttps://github.com/Sparkcentral/PSRedis

しかし、logstash については何も見つかりませんでした。間違った方向に検索しているだけだと思います

したがって、問題は、誰かが私にそれを指摘できない場合、これが正しい方向であるかどうかです.

4

2 に答える 2

5

Sentinel を使用するには、3 つのインスタンスが必要であることを忘れないでください。そのため、セットアップでは、Sentinel インスタンスをログ サーバーにインストールし、各 redis サーバー インスタンスにも 1 つインストールしてください。Sentinel の 3 つのコピーは、互いに独立した方法で失敗すると考えられるコンピューター/VM 上で実行する必要があります (したがって、同じ物理ホスト内の複数の VM はお勧めできません)。

つまり、Sentinel で機能するには、クライアントがhttp://redis.io/topics/sentinel-clientsで指定されているように Sentinel プロトコルを実装する必要があります。

https://github.com/Sparkcentral/PSRedisページで、彼らが正確に実装しているものについてのヒントを見つけることができません。上記のメッセージで指定されているように、最新の Sentinel プロトコルを実装していますか? 問題を開いて、ドキュメント化された Sentinel プロトコルを実装しているかどうかを尋ねます。実装していない場合は実装する必要があり、実装している場合は README にドキュメント化する必要があります。

どうやら Predis 自体はまだ Sentinel のサポートを実装していないようです: https://github.com/nrk/predis/issues/131

時間があれば、次のことをお勧めします。

  1. PSRedis に正確に何を実装しているか尋ねてください。
  2. Sentinel のドキュメントで説明されているプロトコルに慣れてください。これはかなり基本的なものです。
  3. PSRedis が正しい方法で実装しているかどうかを自分で確認してください。そうでない場合は、プル リクエストを提供してください。

ハッピーハッキング。

于 2015-05-07T10:04:59.240 に答える