真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

rabbitmq怎么實現延遲消息隊列?-創(chuàng)新互聯

Rabbitmq本身是沒有延遲隊列的,要實現延遲消息,一般有兩種方式:

創(chuàng)新互聯專注于祁連企業(yè)網站建設,自適應網站建設,商城網站制作。祁連網站建設公司,為祁連等地區(qū)提供建站服務。全流程按需網站建設,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務

1.通過Rabbitmq本身隊列的特性來實現,需要使用Rabbitmq的死信交換機(Exchange)和消息的存活時間TTL(Time To Live)。
2.在rabbitmq 3.5.7及以上的版本提供了一個插件(rabbitmq-delayed-message-exchange)來實現延遲隊列功能。同時插件依賴Erlang/OPT 18.0及以上。

AMQP協議,以及RabbitMQ本身沒有直接支持延遲隊列的功能,但是可以通過TTL和DLX模擬出延遲隊列的功能。

**TTL(Time To Live)**

RabbitMQ可以針對Queue和Message設置 x-message-tt,來控制消息的生存時間,如果超時,則消息變?yōu)閐ead letter

RabbitMQ針對隊列中的消息過期時間有兩種方法可以設置。

A: 通過隊列屬性設置,隊列中所有消息都有相同的過期時間。
B: 對消息進行單獨設置,每條消息TTL可以不同。
如果同時使用,則消息的過期時間以兩者之間TTL較小的那個數值為準。消息在隊列的生存時間一旦超過設置的TTL值,就成為dead letter

詳細可以參考:RabbitMQ之TTL(Time-To-Live 過期時間)

**DLX (Dead-Letter-Exchange)**

RabbitMQ的Queue可以配置x-dead-letter-exchange 和x-dead-letter-routing-key(可選)兩個參數,如果隊列內出現了dead letter,則按照這兩個參數重新路由。

x-dead-letter-exchange:出現dead letter之后將dead letter重新發(fā)送到指定exchange
x-dead-letter-routing-key:指定routing-key發(fā)送
隊列出現dead letter的情況有:

消息或者隊列的TTL過期
隊列達到大長度
消息被消費端拒絕(basic.reject or basic.nack)并且requeue=false
利用DLX,當消息在一個隊列中變成死信后,它能被重新publish到另一個Exchange。這時候消息就可以重新被消費。

了解更多java課程相關技術問題歡迎關注小編!

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


當前標題:rabbitmq怎么實現延遲消息隊列?-創(chuàng)新互聯
URL標題:http://weahome.cn/article/jsdcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部