2016-08-08 10 views
0

現在、私は分散テストの実行と報告システムに取り組んでいます。 Redis PUB/SUBをメッセージキューとメッセージ配布システムとして使用する予定です。Redis PUB/SUBと高可用性

私はレディスが新しく、できるだけ多くのドキュメントを読んでいきたいと考えています。最も重要なトピックの1つは、高可用性です。私が言ったように、私は専門家ではありませんが、Sentinel、レプリケーション、クラスタリングなどのオプションを認識しています。

Pub/Sub機能とHAオプション互いに関連している。 Redisとの信頼性の高いメッセージングシステムを構築するベストプラクティスは何ですか?信頼できるという意味では、私のRedisメッセージブローカーがダウンしている場合、この役割を引き継ぐことができるはずのバックアップノード(スレーブ)があるはずです。

純粋にサーバー側のソリューションはありますか?または、これを処理するためにRedisクライアントの周りにスマートなラッパーを作成する必要がありますか? Sentinel主導のセットアップは私を助けますか?

+0

分散セットアップではpubsubを使用していませんが、データサーバーとして最初にredisを使用しています。 Pubsubは上に桜です。信頼性の高い分散メッセージキューが必要な場合は、特別なソリューションがあります。私はRabbitMQがかなり良いと聞いた。 –

+0

私たちはRedisを(共有ディクショナリとして)その方法で使い始めましたが、プロジェクトが形作っている間に、メッセージベースのコミュニケーションが私たちのニーズに適していることが判明しました。 Redisはそこにあり、それをサポートしているので、私たちはメッセージブローカーとしてそれを使用し始めました。 石に刻まれたものはありませんが、他の解決方法も確認します。 – user2519450

答えて

3

フェールオーバーを使用してRedisでpub subを実行するということは、クライアント側の追加の要素について考えることを意味します。理解すべき重要な点は、サブスクリプションが接続ごとにあることです。ノード上のチャネルに加入していて失敗した場合は、再接続および再登録を処理する必要があります。サブスクリプションは接続レベルで行われるため、レプリケートできるものではありません。それが動作し、何を見て期待することができますどのようになどの詳細については

、それを回避する方法と一緒にあなたが奴隷に加入することにより、リスクの表面を下げることができ、私はhttps://objectrocket.com/blog/how-to/reliable-pubsub-and-blocking-commands-during-redis-failovers

で今年初めに作られた記事を見てマスターにパブリッシュする必要がありますが、サブスクリプションを行うにはプロモート不能なスレーブが必要ですが、スレーブを失うことを処理する必要があります。マスターがあるので、スレーブを失う可能性もあります。

+0

ありがとう、それは画像のロットをより明確にした。あなたのblogpostは、赤ちゃん初心者のための読みやすいほどではありませんが、間違いなく話しています。 – user2519450

1

IMO、PUB/SUBは、良い選択ではありませんdisque(Redisのの著者、antirezから来ている)より良いフィットすることがあります

DISQUE、インメモリ、分散ジョブキュー

+0

ありがとう、私はそれをチェックします。 – user2519450

関連する問題