国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RabbitMQ-延遲隊列的使用

這篇具有很好參考價值的文章主要介紹了RabbitMQ-延遲隊列的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?

目錄

一、使用場景

?二、第一種方式:創(chuàng)建具有超時功能且綁定死信交換機(jī)的消息隊列

三、第二種方式:創(chuàng)建通用延時消息

四、第三種方式:使用rabbitmq的延時隊列插件,實現(xiàn)同一個隊列中有多個不同超時時間的消息,并按時間超時順序出隊

4.1?下載延遲插件

4.2?安裝插件并啟用

五、延遲隊列圖示

六、源代碼參考


一、使用場景

  • 1.定時發(fā)布文章
  • 2.秒殺之后,給30分鐘時間進(jìn)行支付,如果30分鐘后,沒有支付,訂單取消。
  • 3.預(yù)約餐廳,提前半個小時發(fā)短信通知用戶。

A -> 13:00 17:00 16:30 延遲時間: 7*30 * 60 * 1000

B -> 11:00 18:00 17:30 延遲時間: 13*30 * 60 * 1000

C -> 8:00 14:00 13:30 延遲時間: 11*30 * 60 * 1000

RabbitMQ-延遲隊列的使用,RabbitMQ,rabbitmq,分布式

?二、第一種方式:創(chuàng)建具有超時功能且綁定死信交換機(jī)的消息隊列

   @Bean
    public Queue directQueueLong(){
        return   QueueBuilder.durable("業(yè)務(wù)隊列名稱")
                .deadLetterExchange("死信交換機(jī)名稱")
                .deadLetterRoutingKey("死信隊列 RoutingKey")
                .ttl(20000) // 消息停留時間
                //.maxLength(500)
                .build();
    }

監(jiān)聽死信隊列,即可處理超時的消息隊列

缺點:

上述實現(xiàn)方式中,ttl延時隊列中所有的消息超時時間都是一樣的,如果不同消息想設(shè)置不一樣的超時時間,就需要建立多個不同超時時間的消息隊列,比較麻煩,且不利于維護(hù)。

三、第二種方式:創(chuàng)建通用延時消息

rabbitTemplate.convertAndSend("交換機(jī)名稱", "RoutingKey","對象",
	message => {

 
			        message.getMessageProperties().setExpiration(String.valueOf(5000))
			        return message;
	            }
           );

缺點:

該種方式可以創(chuàng)建一個承載不同超時時間消息的消息隊列,但是這種方式有一個問題,如果消息隊列中排在前面的消息沒有到超時時間,即使后面的消息到了超時時間,先到超時時間的消息也不會進(jìn)入死信隊列,而是先檢查排在最前面的消息隊列是否到了超時時間,如果到了超時時間才會繼續(xù)檢查后面的消息。

四、第三種方式:使用rabbitmq的延時隊列插件,實現(xiàn)同一個隊列中有多個不同超時時間的消息,并按時間超時順序出隊

4.1?下載延遲插件

在 RabbitMQ 的 3.5.7 版本之后,提供了一個插件(rabbitmq-delayed-message-exchange)來實現(xiàn)延遲隊列 ,同時需保證 Erlang/OPT 版本為 18.0 之后。

我這里 MQ 的版本是 3.10.0 現(xiàn)在去 GitHub 上根據(jù)版本號下載插件

?https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases

RabbitMQ-延遲隊列的使用,RabbitMQ,rabbitmq,分布式

4.2?安裝插件并啟用

我用的是 Docker 客戶端,下載完成后直接把插件放在 /root 目錄,然后拷貝到容器內(nèi)plugins目錄下(rabbitmq是容器的name,也可以使用容器id)?

RabbitMQ-延遲隊列的使用,RabbitMQ,rabbitmq,分布式

docker cp /opt/rabbitmq_delayed_message_exchange-3.10.0.ez rabbitmq:/plugins

?進(jìn)入 Docker 容器

docker exec -it rabbitmq /bin/bash

在plugins內(nèi)啟用插件

#先執(zhí)行,解除防火墻限制,增加文件權(quán)限
umask 0022
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

退出容器

exit

重啟 RabbitMQ

docker restart rabbitmq

通過UI查看

RabbitMQ-延遲隊列的使用,RabbitMQ,rabbitmq,分布式

五、延遲隊列圖示

當(dāng)C端用戶發(fā)出消息的時候,延遲隊列會實時檢測誰的時間最短,自動將最短的排在前面,一定程度上避免了阻塞

RabbitMQ-延遲隊列的使用,RabbitMQ,rabbitmq,分布式

六、源代碼參考

https://codeup.aliyun.com/62858d45487c500c27f5aab5/springboot-rabbitmq.git?文章來源地址http://www.zghlxwxcb.cn/news/detail-850768.html

到了這里,關(guān)于RabbitMQ-延遲隊列的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • RabbitMQ實現(xiàn)延遲消息,RabbitMQ使用死信隊列實現(xiàn)延遲消息,RabbitMQ延時隊列插件

    RabbitMQ實現(xiàn)延遲消息,RabbitMQ使用死信隊列實現(xiàn)延遲消息,RabbitMQ延時隊列插件

    假設(shè)有一個業(yè)務(wù)場景:超過30分鐘未付款的訂單自動關(guān)閉,這個功能應(yīng)該怎么實現(xiàn)? RabbitMQ使用死信隊列,可以實現(xiàn)消息的延遲接收。 隊列有一個消息過期屬性。就像豐巢超過24小時就收費一樣,通過設(shè)置這個屬性,超過了指定事件的消息將會被丟棄。 這個屬性交:x-message

    2024年02月13日
    瀏覽(104)
  • Rabbitmq----分布式場景下的應(yīng)用

    Rabbitmq----分布式場景下的應(yīng)用

    如果單機(jī)模式忘記也可以看看這個快速回顧rabbitmq,在做學(xué)習(xí) 消息隊列在使用過程中,面臨著很多實際問題需要思考: 消息從發(fā)送,到消費者接收,會經(jīng)理多個過程: 其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括: 發(fā)送時丟失: 生產(chǎn)者發(fā)送的消息未送達(dá)exchange 消

    2024年02月08日
    瀏覽(27)
  • RabbitMQ-延遲隊列的使用

    RabbitMQ-延遲隊列的使用

    目錄 一、使用場景 ?二、第一種方式:創(chuàng)建具有超時功能且綁定死信交換機(jī)的消息隊列 三、第二種方式:創(chuàng)建通用延時消息 四、第三種方式:使用rabbitmq的延時隊列插件,實現(xiàn)同一個隊列中有多個不同超時時間的消息,并按時間超時順序出隊 4.1?下載延遲插件 4.2?安裝插件

    2024年04月14日
    瀏覽(17)
  • 微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    聚合(aggregations)可以實現(xiàn)對文檔數(shù)據(jù)的統(tǒng)計、分析、運算。聚合常見的有三類: 桶(Bucket)聚合:用來對文檔做分組 TermAggregation:按照文檔字段值分組 Date Histogram:按照日期階梯分組,例如一周為一組,或者一月為一組 度量(Metric)聚合:用以計算一些值,比如:最大值

    2024年03月26日
    瀏覽(37)
  • RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!

    RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!

    分布式事務(wù)是指涉及多個獨立的計算機(jī)系統(tǒng)(也稱為節(jié)點或參與者)之間的事務(wù)處理。在分布式系統(tǒng)中,每個節(jié)點可能各自擁有自己的數(shù)據(jù)存儲和事務(wù)管理機(jī)制。分布式事務(wù)的目標(biāo)是保證在跨多個節(jié)點執(zhí)行的一系列操作可以以一致和可靠的方式執(zhí)行和提交,即使在面對故障或

    2024年04月23日
    瀏覽(20)
  • 微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    目錄 一、高級篇 二、面試篇 ==============實用篇============== day05-Elasticsearch01 1.初識elasticsearch 1.4.安裝es、kibana 1.4.1.部署單點es 1.4.2.部署kibana 1.4.3.安裝IK分詞器 1.4.4.總結(jié) 2.索引庫操作 2.1.mapping映射屬性 2.2.索引庫的CRUD 2.2.1.創(chuàng)建索引庫和映射 2.2.2.查詢索引庫 2.2.3.修改索引庫 2.

    2024年02月02日
    瀏覽(25)
  • Python爬蟲分布式架構(gòu) - Redis/RabbitMQ工作流程介紹

    Python爬蟲分布式架構(gòu) - Redis/RabbitMQ工作流程介紹

    在大規(guī)模數(shù)據(jù)采集和處理任務(wù)中,使用分布式架構(gòu)可以提高效率和可擴(kuò)展性。本文將介紹Python爬蟲分布式架構(gòu)中常用的消息隊列工具Redis和RabbitMQ的工作流程,幫助你理解分布式爬蟲的原理和應(yīng)用。 為什么需要分布式架構(gòu)? 在數(shù)據(jù)采集任務(wù)中,單機(jī)爬蟲可能面臨性能瓶頸和資

    2024年02月11日
    瀏覽(29)
  • (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    [此文檔是在心向陽光的天域的博客加了一些有助于自己的知識體系,也歡迎大家關(guān)注這個大佬的博客](https://blog.csdn.net/sinat_38316216/category_12263516.html) [是這個視頻](https://www.bilibili.com/video/BV1LQ4y127n4/?p=5spm_id_from=pageDrivervd_source=9beb0a2f0cec6f01c2433a881b54152c) 聚合 可以讓我們極其方便

    2024年03月12日
    瀏覽(15)
  • 分布式 SpringCloudAlibaba、Feign與RabbitMQ實現(xiàn)MySQL到ES數(shù)據(jù)同步

    分布式 SpringCloudAlibaba、Feign與RabbitMQ實現(xiàn)MySQL到ES數(shù)據(jù)同步

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 同步調(diào)用 方案一:同步調(diào)用 基本步驟如下: hotel-demo對外提供接口,用來修改elasticsearch中的數(shù)據(jù) 酒店管理服務(wù)在完成數(shù)據(jù)庫操

    2024年04月11日
    瀏覽(24)
  • (黑馬出品_高級篇_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    (黑馬出品_高級篇_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    [此文檔是在心向陽光的天域的博客加了一些有助于自己的知識體系,也歡迎大家關(guān)注這個大佬的博客](https://blog.csdn.net/sinat_38316216/category_12263516.html) [是這個視頻](https://www.bilibili.com/video/BV1LQ4y127n4/?p=5spm_id_from=pageDrivervd_source=9beb0a2f0cec6f01c2433a881b54152c) 消息隊列在使用過程中,面

    2024年03月19日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包