在RabbitMQ隊列中是否可能有互斥體,即如果客戶機正在從隊列中讀取數據,則其他客戶機不應從隊列中讀取數據。那可能嗎?Mutex是rabbitmq
讓我解釋一下我的情況:在兩個不同的服務器上運行
兩個應用。閱讀相同的隊列。但是,如果一個應用程序正在運行並從隊列中讀取消息,則其他應用程序不應該執行任何操作。如果主應用程序失敗或停止,則其他應用程序應該從此隊列開始讀取 。
這是一種故障轉移機制。有沒有人嘗試過。任何幫助深表感謝。
在RabbitMQ隊列中是否可能有互斥體,即如果客戶機正在從隊列中讀取數據,則其他客戶機不應從隊列中讀取數據。那可能嗎?Mutex是rabbitmq
讓我解釋一下我的情況:在兩個不同的服務器上運行
兩個應用。閱讀相同的隊列。但是,如果一個應用程序正在運行並從隊列中讀取消息,則其他應用程序不應該執行任何操作。如果主應用程序失敗或停止,則其他應用程序應該從此隊列開始讀取 。
這是一種故障轉移機制。有沒有人嘗試過。任何幫助深表感謝。
只要我已搜查,沒有找到解決辦法......一個簡單的解決方案是
創建隊列調用它鎖定隊列。
只有一條消息讓應用程序從隊列中讀取它。
當應用程序在另一臺服務器上啓動時,它將等待隊列中的消息。所以,如果第一個失敗第二個
人們將讀取消息並開始處理它應該讀取的所需隊列中的消息。
互斥的隊列,僅此而已。 注意:只有在鎖隊列中只有消息時,此方法纔有效。確保你在你的應用程序中處理它。
當您要鏈接到另一個StackOverflow問題以外的其他內容時,請在答案中提供足夠的信息,以便在未來鏈接斷開時仍然有用。 – 2014-04-28 14:09:09
你的做法是有點缺陷。您應該在應用程序級別處理此問題,而不是在隊列級別。 – DarthVader 2012-01-10 18:51:06
如果在rabbitmq中有一種方法,我認爲它會很有趣,所以在這裏發佈它,以查看任何RabbitMq專家可能會回答這個問題,這可能會幫助其他人和我。感謝您的輸入@Darth – Madhan 2012-01-11 11:20:44