3
我正在建立一個網站,該網站接收關於足球比賽的實時更新。我正在使用RabbitMQ將更新發送到客戶端(JS網站和Android/iOS應用程序)。AMQP/RabbitMQ - 只有實時消息/傳遞隊列
客戶端應該只接收實時更新。換句話說,客戶端只應在用戶登錄時接收更新。不保存歷史記錄。
爲了實現這種行爲,我在想下面的架構:
- 在RabbitMQ的扇出交換。
- 每個用戶都有一個專用隊列,綁定到交換機。該隊列在創建用戶帳戶時創建。
- 對於這些隊列,設置值爲0的隊列屬性
x-message-ttl
。見下文。 - 當用戶登錄時,客戶端將消耗相應用戶的隊列。
- 消息由後端發送到交換機,並轉發到所有隊列。當用戶沒有登錄,消息會被立即丟棄,因爲
x-message-ttl
設置爲0
這是AMQP的正確用法/ RabbitMQ的,以實現實時通知?
如果隊列是在登錄後創建的,那麼這是否意味着隊列應該聲明爲「auto-delable」? –
登錄是指登錄到您的網站或登錄 - 建立與RMQ的連接?如果您不希望用戶登錄(從網站/ web應用程序)登錄時錯過的消息,而不是自動刪除。 – cantSleepNow
謝謝,現在明白了。我不明白隊列是要在運行中創建/刪除的。我認爲隊列應該或多或少是靜態的。我會試試看。 –