溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

發(fā)布時(shí)間:2020-07-23 11:20:37 來源:網(wǎng)絡(luò) 閱讀:765 作者:凱哥Java 欄目:編程語言

TTL隊(duì)列及消息介紹

本文是《RabbitMQ精講系列》中第十六篇:RabbitMQ消息中間件技術(shù)精講16 高級(jí)篇九 TTL隊(duì)列及消息。如果想學(xué)習(xí)RabbitMQ的朋友建議從第一篇開始看起。

TTL:

????TTL是Time To Live的縮寫,也就是生存時(shí)間。也就是說RabbitMQ支持消息的過期時(shí)間,在消息發(fā)送的時(shí)候可以對(duì)過期時(shí)間進(jìn)行指定;

同時(shí)RabbitMQ支持隊(duì)列的過期時(shí)間,從消息入隊(duì)列開始計(jì)算,超過了隊(duì)列的超時(shí)時(shí)間配置,那么消息就會(huì)自動(dòng)清除。

今天這篇文章,咱們就不用寫代碼演示。使用頁面的方式進(jìn)行配置發(fā)送消息。

登陸到頁面管控臺(tái):

先創(chuàng)建一個(gè)隊(duì)列queue.

設(shè)置隊(duì)列名稱為:test002

給arguments設(shè)參數(shù):

x-max-length:最大長度。我們?cè)O(shè)置3000

x-message-ttl:設(shè)置超時(shí)時(shí)長。我們?cè)O(shè)置10000毫秒,也就是10秒。

具體如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

設(shè)置完成之后,我們點(diǎn)擊Add.之后,在queues的列表中就可以看到,我們創(chuàng)建的test002隊(duì)列。如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息


接下來,我們創(chuàng)建交換機(jī)exchange:

設(shè)置name為:test002_texchange

設(shè)置類型type為:topic

設(shè)置Durability為durable.持久化

如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

設(shè)置完成之后,點(diǎn)擊保存。我們可以在exchanges的列表中看到剛才創(chuàng)建的test002_exchange的交換機(jī)。如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

接著我們綁定交換機(jī)和隊(duì)列的關(guān)系。

點(diǎn)擊我們創(chuàng)建的隊(duì)列,添加綁定

選擇To queue值為我們上一步創(chuàng)建的隊(duì)列名稱:test002

設(shè)置routing key為ttl.#.

如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

點(diǎn)擊bind之后,我們就可以看到綁定關(guān)系了。如下圖:


RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

接著我們來發(fā)送消息。

點(diǎn)擊test002-exchange,我們可以看到Publish message.就可以在頁面發(fā)送消息了。

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

我們進(jìn)行設(shè)置:

可以看到在properties這個(gè)屬性中,我們需要的都有的。

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

設(shè)置Routing key:ttl.abcd

設(shè)置Delivery mode:2-persistent。持久化

然后設(shè)置消息,Payload。

設(shè)置完成如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

點(diǎn)擊publish message后:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

發(fā)送成功。

我們看看隊(duì)列:test002中已經(jīng)有一條消息了。如下圖:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

我們等待10秒,發(fā)現(xiàn)消息自動(dòng)消失了。如下:

RabbitMQ 高級(jí)篇九 TTL設(shè)置隊(duì)列或消息有效期隊(duì)列及消息

下節(jié)我們講解:死信隊(duì)列

凱哥公眾號(hào):凱哥Java(kaigejava)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI