AWS でチャット サービスをスケーリングするための最適なソリューションを考え出そうとしています。私はいくつかの潜在的な解決策を思いつきました:
Redis Pub/Sub - ユーザーがサーバーへの接続を確立すると、そのサーバーはそのユーザーの ID をサブスクライブします。誰かがそのユーザーにメッセージを送信すると、サーバーはユーザーの ID を使用してチャネルへの公開を実行します。ユーザーが接続しているサーバーがメッセージを受信し、適切なクライアントにプッシュします。
SQS - ユーザーごとにキューを作成することを考えました。ユーザーが接続しているサーバーは、そのキューをポーリング (または SQS ロングポーリングを使用) します。新しいメッセージが発見されると、サーバーからユーザーにプッシュされます。
SNS - 100 トピックの制限を発見するまで、私はこのソリューションを本当に気に入っていました。ユーザーごとに 100 人のユーザーしかサポートしないトピックを作成する必要があります。
AWS を使用してチャットをスケーリングできる他の方法はありますか? SQS アプローチは実行可能ですか? AWS がメッセージをキューに追加するのにどれくらいの時間がかかりますか?