スループットがシステム内のサブスクライバー数とチャネル数に比例してスケーリングする巨大な分散システムを設計する場合、どちらが優れているでしょうか?
1) Redis クラスター(Redis 3.0 アルファの場合のみ。クラスター モードの場合、あるノードでパブリッシュし、別の完全に異なるノードでサブスクライブすることができ、メッセージが伝播して到達します)。Publish の複雑さはO(N+M)です。ここで、N はサブスクライブされたクライアントの数、M はシステム内のサブスクライブされたパターンの数ですが、Redis クラスターではどのようにスケーリングしますか? 私はこれについての知識に基づいた推測を受け入れます。
2) 3.x 以降のZeroMQは、サーバー側のフィルタリングを行うため、時間の複雑さも伴いますが、ドキュメントではそれについて何も見ていません。規模を拡大したい場合は、多数のサーバーを任意のチャネルに公開し、各サブスクライバーがすべてのサーバーに接続して、目的のチャネルをサブスクライブすることができます。それはいいですね。
では、巨大なパブリッシャー システムの水平スケーリングに適しているのはどれでしょうか? 私が調べるべき他の解決策は何ですか? レイテンシとスループットを最小限に抑えたいが、水平方向にスケーリングできることを忘れないでください。