2011-06-28 16 views
15

私は新しいプロジェクトのアーキテクチャのセクションについてRedisを検討しています。多くのクライアント(node.js接続)で構成されます。必要に応じて、特定のキーを1つのプロセスでそれらのキーにパブリッシュして加入します。Redis PUBLISH/SUBSCRIBE limits

PUBLISH/SUBSCRIBEコマンドの制限とそれらを緩和する方法が不思議です。明白な制限は、Redisでマシン上で開いているファイル記述子の量です。したがって、ある時点で、複数のRedisインスタンスに対してMaster-SlaveまたはConsistent Hashingを実装する必要があります。

RedisのPubSubでこのアーキテクチャーをどのように拡大縮小するかについては誰にも解決策がありますか?

答えて

22

Redis PubSubは、マスター/スレーブの複製がすべてのスレーブに自動的に公開されるため、簡単にスケールを調整します。

最も簡単な方法は、node.jsへの接続をHAProxyなどで負荷分散することです。メッセージを発行する単一のマスターと同期する各WebサーバーでRedisスレーブを実行します。

正確な数値は、基礎となるシステムに大きく左右されますが、これは非常に優れているはずです。また、クライアントとそれらが手動で接続するサーバーを管理する必要はありません。明らかに、セッション状態を処理するには何らかの方法が必要なので、どうにかする必要があるかもしれませんが、ロードバランサではアプリケーションよりもはるかに簡単です。