RabbitMQ中Queue詳細介紹

2022-09-02 03:09:08 字數 1237 閱讀 3487

新建queue時有很多引數,都代表什麼含義,在這裡解釋一下:

前述:rabbit版本為3.7.6 erlang 版本為 21.0.1

必填項,佇列的名字,建議格式可以為多個字段,表示佇列中存放的內容,比如task.queue

是否需要持久化,有兩個選項durable(長久的)和transient(臨時的)

是否自動刪除,如果選擇yes,則訊息會被其中乙個消費者所消費,之後佇列會自動銷毀,其他消費者也會斷開連線(佇列都沒了,連線肯定斷了)。

rabbitmq有很多的引數可以設定

x-message-ttl:值為number型別,表示訊息在佇列中的存活時間,單位為毫秒

x-expires:值為number型別,表示佇列存在的時間,單位為毫秒

x-max-length:值為number型別,乙個佇列中能夠存放的最多訊息個數,超過設定個數之後就會從head開始丟棄訊息。也就是先到的訊息會先被丟棄。

x-max-length-bytes:值為string型別,佇列中每個訊息的最大位元組數,超過設定個數之後就會從head開始丟棄訊息。也就是先到的訊息會先被丟棄。

x-overflow:值為string型別,設定佇列溢位時的行為,可選值為drop-head或reject-publish

x-dead-letter-exchange:值為string型別,如果訊息被拒絕或者過期後,訊息被重新放入的exchange名稱

x-dead-letter-routing-key:值為string型別,當訊息dead-lettered,根據routing key 進行路由訊息,如果沒有設定,會使用訊息的原始routing key

x-max-priority:值為number型別,最大的訊息優先順序,如果不設定,則不支援訊息優先順序

x-queue-mode:值為string型別,如果設為lazy,則會將盡可能多的訊息儲存到磁碟上,減少記憶體的使用,如果不設定,則所有訊息都放到記憶體,保證最快速度的分發

x-queue-master-locator:值為string型別,當在集群中時,設定隊列為master location mode,會決定佇列master在集群中的位置

遺留問題:

rabbitmq與kafka的對比

springmvc如何支援rabbitmq(web.xml配置)

listener中如果處理訊息時出現異常,為什麼會不停消費同一條訊息

在linux下安裝配置rabbitMQ詳細教程

由於rabbitmq依賴erlang,所以需要先安裝erlang yum install epel release yum install erlang安裝 rabbitmq,刪除guest,增加新使用者 wget yum install rabbitmq server 3.6.6 1.el7.no...

在linux下安裝配置rabbitMQ詳細教程

由於rabbitmq依賴erlang,所以需要先安裝erlang。erlang的安裝方式大概有兩種 從erlang solution安裝 推薦 新增erlang solutions源 wget sudo rpm uvh erlang solutions 1.0 1.noarch.rpm sudo y...

STL中queue的使用

基本操作 empty 如果隊列為空返回真 pop 刪除對頂元素 push 加入乙個元素 size 返回優先佇列中擁有的元素個數 top 返回優先佇列對頂元素 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方法 標頭檔案 include 宣告方式 1 普通方法 pr...