クライアントからの RPC (要求/応答) タイプの要求を処理する TCP サーバーを構築しましたが、サービスがアドホック時にイベントをプッシュすることもできます。
将来拡張する必要が生じた場合、RPC は非常に簡単です。Web インフラストラクチャと同様に、ノードを追加して負荷を分散するだけです。
プッシュ メッセージをスケーリングするには、イベントにサブスクライブするクライアントが任意のサーバー上にある可能性があるため、すべてのサーバーを調整する必要があります。
私のオプションは次のとおりです。
- UDP マルチキャスト/ブロードキャスト (emcaster など) を使用して、すべてのサーバーにイベントをブロードキャストします。
- TCPを使用してサーバーを相互に完全に相互接続します
- すべてのイベントが送信される中央サーバー、およびすべてのワーカー サーバーがそのサーバーに接続する
- [3]しかし、ツリーを形成するためにいくつかのレイヤーがあります
[1] はシンプルで、おそらく最大 20 ~ 30 ノードでうまく機能するため、[1] を使用するように誘惑されます。N がノードの数である場合、N のさまざまな範囲に対する最良の戦略は何かについてコンセンサスはありますか?