日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

阿里面試:RabbitMQ如何實(shí)現(xiàn)延遲隊(duì)列?

來源: 責(zé)編: 時(shí)間:2024-04-28 08:55:17 215觀看
導(dǎo)讀延遲隊(duì)列是指當(dāng)消息被發(fā)送以后,并不是立即執(zhí)行,而是等待特定的時(shí)間后,消費(fèi)者才會執(zhí)行該消息。延遲隊(duì)列的使用場景有以下幾種:未按時(shí)支付的訂單,30 分鐘過期之后取消訂單。給活躍度比較低的用戶間隔 N 天之后推送消息,提高活

ZPR28資訊網(wǎng)——每日最新資訊28at.com

延遲隊(duì)列是指當(dāng)消息被發(fā)送以后,并不是立即執(zhí)行,而是等待特定的時(shí)間后,消費(fèi)者才會執(zhí)行該消息。延遲隊(duì)列的使用場景有以下幾種:ZPR28資訊網(wǎng)——每日最新資訊28at.com

  1. 未按時(shí)支付的訂單,30 分鐘過期之后取消訂單。
  2. 給活躍度比較低的用戶間隔 N 天之后推送消息,提高活躍度。
  3. 新注冊會員的用戶,等待幾分鐘之后發(fā)送歡迎郵件等。

1.如何實(shí)現(xiàn)延遲隊(duì)列?

延遲隊(duì)列有以下兩種實(shí)現(xiàn)方式:ZPR28資訊網(wǎng)——每日最新資訊28at.com

  1. 通過消息過期后進(jìn)入死信交換器,再由交換器轉(zhuǎn)發(fā)到延遲消費(fèi)隊(duì)列,實(shí)現(xiàn)延遲功能;
  2. 使用官方提供的延遲插件實(shí)現(xiàn)延遲功能。

早期,大部分公司都會采用第一種方式,而隨著 RabbitMQ 3.5.7(2015 年底發(fā)布)的延遲插件的發(fā)布,因?yàn)槠涫褂酶唵巍⒏奖悖运F(xiàn)在才是大家普通會采用的,實(shí)現(xiàn)延遲隊(duì)列的方式,所以本文也只講第二種方式。ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.實(shí)現(xiàn)延遲隊(duì)列

2.1 安裝并啟動延遲隊(duì)列

2.1.1 下載延遲插件

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releasesZPR28資訊網(wǎng)——每日最新資訊28at.com

注意:需要根據(jù)你自己的 RabbitMQ 服務(wù)器端版本選擇相同版本的延遲插件,可以在 RabbitMQ 控制臺查看:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.1.2 將插件放到插件目錄

接下來,將上一步下載的插件放到 RabbitMQ 服務(wù)器安裝目錄,如果是 docker,使用一下命令復(fù)制:ZPR28資訊網(wǎng)——每日最新資訊28at.com

docker cp 宿主機(jī)文件 容器名稱或ID:容器目錄ZPR28資訊網(wǎng)——每日最新資訊28at.com

如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片之后,進(jìn)入 docker 容器,查看插件中是否包含延遲隊(duì)列:ZPR28資訊網(wǎng)——每日最新資訊28at.com

docker exec -it 容器名稱或ID /bin/bash rabbitmq-plugins listZPR28資訊網(wǎng)——每日最新資訊28at.com

如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.1.3 啟動插件

rabbitmq-plugins enable rabbitmq_delayed_message_exchangeZPR28資訊網(wǎng)——每日最新資訊28at.com

如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.1.4 重啟RabbitMQ服務(wù)

安裝完 RabbitMQ 插件之后,需要重啟 RabbitMQ 服務(wù)才能生效。如果使用的是 Docker,只需要重啟 Docker 容器即可:ZPR28資訊網(wǎng)——每日最新資訊28at.com

docker restart 容器名稱或IDZPR28資訊網(wǎng)——每日最新資訊28at.com

如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.1.5 驗(yàn)收結(jié)果

在 RabbitMQ 控制臺查看,新建交換機(jī)時(shí)是否有延遲消息選項(xiàng),如果有就說明延遲消息插件已經(jīng)正常運(yùn)行了,如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.1.6 手動創(chuàng)建延遲交換器(可選)

此步驟可選(非必須),因?yàn)槟承┌姹鞠峦ㄟ^程序創(chuàng)建延遲交換器可能會出錯(cuò),如果出錯(cuò)了,手動創(chuàng)建延遲隊(duì)列即可,如下圖所示:ZPR28資訊網(wǎng)——每日最新資訊28at.com

圖片ZPR28資訊網(wǎng)——每日最新資訊28at.com

2.2 編寫延遲消息實(shí)現(xiàn)代碼

2.2.1 配置交換器和隊(duì)列

import org.springframework.context.annotation.Configuration;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;/** * 延遲交換器和隊(duì)列 */@Configurationpublic class DelayedExchangeConfig {    public static final String EXCHANGE_NAME = "myDelayedExchange";    public static final String QUEUE_NAME = "delayed.queue";    public static final String ROUTING_KEY = "delayed.routing.key";    @Bean    public CustomExchange delayedExchange() {        return new CustomExchange(EXCHANGE_NAME,                "x-delayed-message", // 消息類型                true, // 是否持久化                false); // 是否自動刪除    }    @Bean    public Queue delayedQueue() {        return QueueBuilder.durable(QUEUE_NAME)                .withArgument("x-delayed-type", "direct")                .build();    }    @Bean    public Binding delayedBinding(Queue delayedQueue,CustomExchange delayedExchange) {        return BindingBuilder.bind(delayedQueue()).to(delayedExchange()).with(ROUTING_KEY).noargs();    }}

2.1.2 定義消息發(fā)送方法

import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;@Componentpublic class DelayedMessageProducer {    @Autowired    private RabbitTemplate rabbitTemplate;    @Scheduled(fixedDelay = 5000)    public void sendDelayedMessage(String message) {        rabbitTemplate.convertAndSend(DelayedExchangeConfig.EXCHANGE_NAME,                DelayedExchangeConfig.ROUTING_KEY,                message,                messagePostProcessor -> {                    messagePostProcessor.getMessageProperties().setDelay(10000); // 設(shè)置延遲時(shí)間,單位毫秒                    return messagePostProcessor;                });    }}

2.1.3 發(fā)送延遲消息

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/delayed")public class DelayedMessageController {    @Autowired    private DelayedMessageProducer delayedMessageProducer;    @GetMapping("/send")    public String sendDirectMessage(@RequestParam String message) {        delayedMessageProducer.sendDelayedMessage(message);        return "Delayed message sent to Exchange: " + message;    }}

2.1.4 接收延遲消息

import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Componentpublic class DelayedMessageConsumer {    @RabbitListener(queues = DelayedExchangeConfig.QUEUE_NAME)    public void receiveDelayedMessage(String message) {        System.out.println("Received delayed message: " + message);    }}

PS:獲取本文延遲隊(duì)列的實(shí)現(xiàn) Demo,請加我:GG_Stone【備注:延遲隊(duì)列】ZPR28資訊網(wǎng)——每日最新資訊28at.com

小結(jié)

實(shí)現(xiàn) RabbitMQ 延遲隊(duì)列目前主流的實(shí)現(xiàn)方式,是采用官方提供的延遲插件來實(shí)現(xiàn)。而延遲插件需要先下載插件、然后配置并重啟 RabbitMQ 服務(wù),之后就可以通過編寫代碼的方式實(shí)現(xiàn)延遲隊(duì)列了。ZPR28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-86060-0.html阿里面試:RabbitMQ如何實(shí)現(xiàn)延遲隊(duì)列?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 電視產(chǎn)業(yè)躍升:AI 芯片推動三星電視再度提至新高度

下一篇: 原理剖析| Kafka Exactly Once 語義實(shí)現(xiàn)原理:冪等性與事務(wù)消息

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲精品视频一区二区三区| 国产无一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美在现视频| 久久免费午夜影院| 女主播福利一区| 欧美精品综合| 国产精品五月天| 亚洲自啪免费| 亚洲国产欧美一区二区三区同亚洲 | 欧美另类69精品久久久久9999| 欧美三级在线播放| 国产日产欧产精品推荐色| 在线电影欧美日韩一区二区私密| 亚洲欧洲日韩女同| 亚洲综合清纯丝袜自拍| 久久蜜臀精品av| 欧美日韩在线播放| 久久久午夜视频| 欧美国产综合一区二区| 久久综合久久综合久久| 欧美sm重口味系列视频在线观看| 欧美午夜在线观看| 极品少妇一区二区| 日韩视频免费观看| 亚洲欧洲精品一区| 亚洲一区二区在线免费观看| 久久精品一区蜜桃臀影院| 久久精品在线| 欧美人与性禽动交情品| 国产日韩欧美一区二区| 亚洲国产精品专区久久| 亚洲欧美国产制服动漫| 欧美91福利在线观看| 国产精品青草久久久久福利99| 在线免费观看成人网| 亚洲一品av免费观看| 免费不卡在线观看av| 国产精品一卡二| 亚洲免费成人av| 久久久久九九九| 国产精品卡一卡二| 亚洲日韩欧美视频| 99精品久久久| 久久久久久久久久久一区 | 国产欧美一区二区三区在线老狼| 最新国产の精品合集bt伙计| 亚洲欧洲精品一区二区三区不卡 | 国产亚洲激情视频在线| 99国内精品久久| 麻豆精品国产91久久久久久| 国产精品丝袜91| 日韩图片一区| 午夜精品成人在线| 欧美日本精品一区二区三区| 黄色小说综合网站| 午夜视频久久久久久| 欧美日韩国产欧| 亚洲国产欧美另类丝袜| 久久激情一区| 国产精品一区久久| 国产精品99久久久久久久女警| 嫩草成人www欧美| 国产精品国产| 99在线视频精品| 欧美高清在线| 欧美高清一区二区| 伊伊综合在线| 久久精品国产综合精品| 国产精品视频自拍| 亚洲一区二区三区四区在线观看| 欧美精品入口| 亚洲欧洲免费视频| 免费观看日韩| 欧美性猛交一区二区三区精品| 国产精品豆花视频| 日韩视频专区| 欧美大片免费观看| 国产精品青草综合久久久久99| 宅男噜噜噜66国产日韩在线观看| 欧美精品v日韩精品v韩国精品v| 在线成人欧美| 久久亚洲精品欧美| 欧美三级韩国三级日本三斤| 亚洲精品极品| 欧美大色视频| 最新国产成人av网站网址麻豆 | 久久久91精品国产| 欧美视频在线不卡| 一区二区三区欧美激情| 欧美日韩视频免费播放| 国产日韩综合一区二区性色av| 亚洲免费在线看| 欧美性生交xxxxx久久久| 亚洲一区二区三区中文字幕| 国产精品扒开腿做爽爽爽软件| 一区二区三区久久网| 国产精品成人aaaaa网站| 亚洲小视频在线观看| 久久久久一区二区三区| 国内精品免费午夜毛片| 夜夜嗨网站十八久久| 欧美日韩亚洲一区三区| 日韩午夜在线电影| 欧美日韩成人激情| 亚洲视频在线观看视频| 国产精品视频不卡| 久久激情视频| 在线日韩av永久免费观看| 亚洲免费在线视频一区 二区| 国产精品乱码妇女bbbb| 亚洲欧美另类在线| 国内自拍亚洲| 免费精品99久久国产综合精品| 亚洲激情偷拍| 久久久福利视频| 在线观看日韩av| 欧美激情综合五月色丁香| 红桃视频一区| 男人插女人欧美| aⅴ色国产欧美| 国产精品三上| 久久三级视频| 亚洲精品日本| 国产精品视频久久一区| 久久精品久久99精品久久| 亚洲国产日韩欧美在线99| 欧美日一区二区三区在线观看国产免| 亚洲自拍偷拍网址| 精品91视频| 欧美日韩一二区| 久久国产福利| 亚洲精品日韩激情在线电影| 国产精品日韩欧美大师| 久久全国免费视频| 99国内精品久久| 国产在线不卡| 欧美日韩国产亚洲一区| 欧美在线观看视频一区二区三区 | 欧美精品一区二区三区在线看午夜| 亚洲在线免费视频| 尤物在线精品| 欧美视频一区二区| 久久久久久国产精品mv| 日韩亚洲不卡在线| 国产一区二区精品丝袜| 欧美日韩1234| 久久精品亚洲乱码伦伦中文 | 国产综合精品一区| 欧美日韩视频一区二区| 欧美在线观看视频| 99精品国产热久久91蜜凸| 国产亚洲欧美一区二区| 欧美久久一区| 久久久久一区| 亚洲一二三区在线观看| 亚洲高清视频的网址| 免费视频最近日韩| 午夜精品视频在线| 日韩一级在线观看| 亚洲大片av| 国产视频精品免费播放| 欧美日韩亚洲三区| 女同一区二区| 久久久久**毛片大全| 午夜精品久久久久久久久久久久| 亚洲每日更新| 1769国产精品| 国内外成人免费激情在线视频 | 国产日产欧产精品推荐色 | 国产伦精品一区二区三区在线观看 | 国产精品欧美日韩久久| 一区二区三区四区五区在线| 一区二区三区在线免费播放| 欧美日韩国产综合视频在线观看| 麻豆精品一区二区av白丝在线| 亚洲综合第一| 日韩视频一区二区三区| 国产一区二区三区免费不卡 | 亚洲视频香蕉人妖| 亚洲黄色天堂| 国产一区二区三区不卡在线观看| 国产精品久久午夜| 欧美国产综合视频| 久久综合成人精品亚洲另类欧美| 亚洲一区久久| 亚洲午夜一级| 亚洲乱码国产乱码精品精天堂| 国内精品伊人久久久久av一坑| 欧美高清不卡| 欧美成人福利视频| 久久久91精品国产| 一本色道久久综合亚洲精品高清| 亚洲人成毛片在线播放女女| 狠狠久久婷婷| 国产日本欧美一区二区三区| 国产精品三上| 欧美三级资源在线| 欧美激情精品久久久久久大尺度| 久久久亚洲人| 榴莲视频成人在线观看| 免费成人毛片| 欧美激情精品久久久久久| 欧美精品高清视频|