我們有這樣一個場景:在幾個節點如何在使用Rabbitmq時設置消息自動重試並設置ttl = 0?
可能有很多工人(a.k.a消費者),在此期間,Web應用將在線提交作業這些工人。我們需要平均處理這些工作,並知道是否有可用的工作人員來完成每項工作。因此,如果沒有工人從事各項工作,我們希望使用Rabbitmq安排工作並設置每個工作信息ttl = 0
以獲得通知。但是我們也希望Rabbitmq在工作節點崩潰時處理作業重新安排。但是,如果ttl
設置爲0,Rabbitmq將在工作人員崩潰或網絡故障時放下作業消息。
我知道我們可以使用DLX來處理死信息,但是構建一個模塊來處理這些異常是很困難的,因爲我必須爲它提供高可用性。最重要的是,我無法區分調度失敗和重新安排法邑,這與處理非常不同!
你們有其他想法嗎?
感謝您的回覆。但你沒有得到我的問題。如果沒有可用的工作人員,我需要讓消息過期。但是如果我將消息TTL設置爲0,則代理不會重新計劃消息,因爲它會確認重新計劃消息已過期。 –
@JinMa在這種情況下,你提到的DLX,根據我的經驗,這不是真的那麼挑剔:) – cantSleepNow
是的,我可以使用DLX和DB來完成我的工作。但我只想要一個更簡單的方法 –