過期時間ttl表示可以對訊息設定預期的時間,在這個時間內都可以被消費者接收獲取;過了之後訊息將自動被刪除。
rabbitmq可以對訊息和佇列設定ttl。目前有兩種方法可以設定。
如果上述兩種方法同時使用,則訊息的過期時間以兩者之間ttl較小的那個數值為準。訊息在佇列的生存時間一旦超過設
置的ttl值,就稱為dead message被投遞到死信佇列,消費者將無法再收到該訊息。
設定
@bean
public queue queue5()
@test
void
contextloads2()
throws exception };
rabbittemplate.
convertandsend
("dead",""
,"hello springboot-dead"
,messagepostprocessor)
;}
dlx,全稱為dead-letter- exchange ,可以稱之為死信交換機,也有人稱之為死信郵箱。當訊息在乙個佇列中變 成死信
(dead message)之後,它能被重新傳送到另乙個交換機中,這個交換機就是dlx,繫結dlx的佇列就稱之為死信佇列。
訊息變成死信,可能是由於以下的原因:
dlx也是乙個正常的交換機,和一般的交換機沒有區別,它能在任何的佇列上被指定,實際上就是設定某乙個佇列的屬
性。當這個佇列中存在死信時,rabbitmq就會自動地將這個訊息重新發布到設定的dlx上去,進而被路由到另乙個隊
列,即死信佇列。
要想使用死信佇列,只需要在定義佇列的時候設定佇列引數x-dead- letter-exchange
指定交換機即可。
TTL佇列訊息與死信佇列
ttl是time to live的縮寫,生存時間 rabbitmq支援訊息的過期時間,訊息傳送時可以指定,從訊息入佇列開始計算,只要超過佇列的超時時間配置,訊息就會自動清除 mapargs new hashmap args.put x message ttl 60000 channel.queued...
RabbitMQ 實戰指南 一 過期時間TTL
目前有兩種方式可以設定訊息的ttl 如果兩種方法一起使用,則訊息的ttl已較小的數值為準。1.1 通過設定佇列屬性來控制訊息的ttl 在宣告佇列的時候可以通過 x message ttl 屬性來控制訊息的ttl,這個引數的單位是毫秒。如果不設定 ttl.則表示此訊息不會過期 如果將 ttl 設定為 ...
Redis 過期時間與記憶體管理
當 redis 作為快取使用時 此時快取僅作為熱點資料提高服務的訪問效能 需要考慮記憶體的限制,以及如何隨著業務的增長,僅保留熱點資料。redis 所有的資料結構都可以設定過期時間,時間到了,redis 會自動刪除相應的物件。需要注意的 127.0.0.1 6379 set k1 aaa ok127...