3
私はサッカーの試合についてのリアルタイムアップデートを受信するウェブサイトを構築しています。私はRabbitMQを使ってクライアント(JSウェブサイトとAndroid/iOSアプリ)にアップデートを送信しています。AMQP/RabbitMQ - リアルタイムメッセージ/パススルーキューのみ
クライアントはリアルタイム更新のみを受信する必要があります。つまり、クライアントは、ユーザーがログインしたときにのみ更新を受け取る必要があります。履歴は保持されません。この動作を達成するために
、私は次のようなアーキテクチャを考えていた:
- のRabbitMQでファンアウト交換。
- 各ユーザには専用のキューがあり、専用のキューがExchangeにバインドされています。このキューは、ユーザーアカウントの作成時に作成されます。
- これらのキューでは、値0のキュープロパティ
x-message-ttl
が設定されます。下記参照。 - ユーザーがログインすると、クライアントは対応するユーザーのキューを消費します。
- メッセージは、バックエンドによってExchangeに送信され、すべてのキューに転送されます。ユーザーがログインしていない場合は
x-message-ttl
は0
に設定されているように、メッセージは、すぐに破棄されます、これはリアルタイム通知を達成するために、AMQP/RabbitMQのの正しい使い方ですか?
ログイン後にキューが作成された場合、キューは「自動デリバティブ」として宣言されるべきですか? –
ログインすると、あなたのウェブサイトにログインしているかログインしていることを意味しますか?RMQへの接続を確立していますか?ログアウトしている間に(Webサイト/ Webアプリケーションから)メッセージを見逃してしまわないようにするには、自動的に削除するようにしてください。 – cantSleepNow
ありがとうございました。キューは作成中/削除中であることは理解できませんでした。私は、キューは多かれ少なかれ静的であるべきだと思った。私はそれを試してみる。 –