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

RabbitMQ延遲隊列,死信隊列配置

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

延遲和死信隊列的配置
  • 延遲隊列有效期一分鐘,后進(jìn)入死信隊列,如果異常就進(jìn)入異常隊列
@Configuration
@Data
public class RabbitMQConfig {


    /**
     * 交換機(jī)
     */
    private String orderEventExchange="order.event.exchange";


    /**
     * 延遲隊列, 不能被監(jiān)聽消費
     */
    private String orderCloseDelayQueue="order.close.delay.queue";

    /**
     * 關(guān)單隊列, 延遲隊列的消息過期后轉(zhuǎn)發(fā)的隊列,被消費者監(jiān)聽
     */
    private String orderCloseQueue="order.close.queue";


    /**
     * 進(jìn)入延遲隊列的路由key
     */
    private String orderCloseDelayRoutingKey="order.close.delay.routing.key";


    /**
     * 進(jìn)入死信隊列的路由key,消息過期進(jìn)入死信隊列的key
     */
    private String orderCloseRoutingKey="order.close.routing.key";

    /**
     * 過期時間 毫秒,臨時改為1分鐘定時關(guān)單
     */
    private Integer ttl=1000*60;

    /**
     * 消息轉(zhuǎn)換器
     * @return
     */
    @Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }


    /**
     * 創(chuàng)建交換機(jī) Topic類型,也可以用dirct路由
     * 一般一個微服務(wù)一個交換機(jī)
     * @return
     */
    @Bean
    public Exchange orderEventExchange(){
        return new TopicExchange(orderEventExchange,true,false);
    }


    /**
     * 延遲隊列
     */
    @Bean
    public Queue orderCloseDelayQueue(){

        Map<String,Object> args = new HashMap<>(3);
        args.put("x-dead-letter-exchange",orderEventExchange);
        args.put("x-dead-letter-routing-key",orderCloseRoutingKey);
        args.put("x-message-ttl",ttl);

        return new Queue(orderCloseDelayQueue,true,false,false,args);
    }


    /**
     * 死信隊列,普通隊列,用于被監(jiān)聽
     */
    @Bean
    public Queue orderCloseQueue(){

        return new Queue(orderCloseQueue,true,false,false);

    }

    /**
     * 第一個隊列,即延遲隊列的綁定關(guān)系建立
     * @return
     */
    @Bean
    public Binding orderCloseDelayBinding(){

        return new Binding(orderCloseDelayQueue,Binding.DestinationType.QUEUE,orderEventExchange,orderCloseDelayRoutingKey,null);
    }

    /**
     * 死信隊列綁定關(guān)系建立
     * @return
     */
    @Bean
    public Binding orderCloseBinding(){

        return new Binding(orderCloseQueue,Binding.DestinationType.QUEUE,orderEventExchange,orderCloseRoutingKey,null);
    }



}
異常隊列配置類
public class RabbitMQErrorConfig {
    @Autowired
    RabbitTemplate rabbitTemplate;
    /**
     * 異常交換機(jī)
     */
    private String orderErrorExchange = "order.error.exchange";
    /**
     * 異常隊列
     */
    private String orderErrorQueue = "order.error.queue";
    /**
     * 異常routing.key
     */
    private String orderErrorRoutingKey = "order.error.routing.key";

    /**
     * 異常交換機(jī)
     * @return
     */
    @Bean
    public TopicExchange errorTopicExchange(){
        return new TopicExchange(orderErrorExchange,true,false);
    }

    /**
     * 異常隊列
     * @return
     */
    @Bean
    public Queue errorQueue(){
        return new Queue(orderErrorQueue,true);
    }

    /**
     * 隊列交換機(jī)進(jìn)行綁定
     * @param errorQueue
     * @return
     */
    @Bean
    public Binding BindingErrorQueueAndExchange(Queue errorQueue,TopicExchange errorTopicExchange){
        return BindingBuilder.bind(errorQueue).to(errorTopicExchange).with(orderErrorRoutingKey);
    }

    /**
     * 配置 RepublishMessageRecoverer
     * 用途:消息重試一定次數(shù)后,用特定的routingKey轉(zhuǎn)發(fā)到指定的交換機(jī)中,方便后續(xù)排查和告警
     *
     * 頂層是 MessageRecoverer接口,多個實現(xiàn)類
     *
     * @return
     */
    @Bean
    public MessageRecoverer messageRecoverer(){
        return new RepublishMessageRecoverer(rabbitTemplate,orderErrorExchange,orderErrorRoutingKey);
    }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-623612.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之TTL+死信隊列實現(xiàn)延遲隊列

    RabbitMQ是一個流行的消息隊列系統(tǒng),它提供了許多有用的功能,其中之一是TTL(Time To Live)和死信隊列。這些功能可以用來實現(xiàn)延遲隊列,讓我們來看看如何使用它們。 首先,什么是TTL?TTL是消息的存活時間,它可以設(shè)置為一個特定的時間段。如果消息在這個時間段內(nèi)沒有被

    2024年02月13日
    瀏覽(18)
  • (五)RabbitMQ-進(jìn)階 死信隊列、延遲隊列、防丟失機(jī)制

    (五)RabbitMQ-進(jìn)階 死信隊列、延遲隊列、防丟失機(jī)制

    Lison dreamlison@163.com , v1.0.0 , 2023.06.23 概念 在MQ中,當(dāng)消息成為死信(Dead message)后,消息中間件可以 將其從當(dāng)前隊列發(fā)送到另一個隊列中,這個隊列就是死信隊列。而 在RabbitMQ中,由于有交換機(jī)的概念,實際是將死信發(fā)送給了死 信交換機(jī)(Dead Letter Exchange,簡稱DLX)。死信交

    2024年02月15日
    瀏覽(25)
  • RabbitMQ養(yǎng)成記 (10.高級特性:死信隊列,延遲隊列)

    RabbitMQ養(yǎng)成記 (10.高級特性:死信隊列,延遲隊列)

    這個概念 在其他MQ產(chǎn)品里面也是有的,只不過在Rabbitmq中稍微特殊一點 什么叫私信隊列呢? 就是當(dāng)消息成為 dead message之后,可以重新發(fā)到另外一臺交換機(jī),這個交換機(jī)就是DLX。 注意這里的有翻譯歧義, 這里的DLX 指的是 交換機(jī) ,而不是一個隊列。 隊列的消息長度 到達(dá)限制

    2024年02月05日
    瀏覽(17)
  • RabbitMQ高級特性2 、TTL、死信隊列和延遲隊列

    RabbitMQ高級特性2 、TTL、死信隊列和延遲隊列

    設(shè)置 消費者 測試 添加多條消息 拉取消息 每隔20秒拉取一次 一次拉取五條 然后在20秒內(nèi)一條一條消費 Time To Live(存活時間/過期時間)。 當(dāng)消息到達(dá)存活時間后,還沒有被消費,會被自動清除。 RabbitMQ可以對消息設(shè)置過期時間,也可以對整個隊列(Queue)設(shè)置過期時間。 可

    2024年01月16日
    瀏覽(20)
  • 【RabbitMQ】 RabbitMQ 消息的延遲 —— 深入探索 RabbitMQ 的死信交換機(jī),消息的 TTL 以及延遲隊列

    【RabbitMQ】 RabbitMQ 消息的延遲 —— 深入探索 RabbitMQ 的死信交換機(jī),消息的 TTL 以及延遲隊列

    消息隊列是現(xiàn)代分布式應(yīng)用中的關(guān)鍵組件,用于實現(xiàn)異步通信、解耦系統(tǒng)組件以及處理高并發(fā)請求。消息隊列可以用于各種應(yīng)用場景,包括任務(wù)調(diào)度、事件通知、日志處理等。在消息隊列的應(yīng)用中,有時需要實現(xiàn)消息的延遲處理、處理未能成功消費的消息等功能。 本文將介紹

    2024年02月05日
    瀏覽(95)
  • SpringCloudStream整合RabbitMQ用ttl+死信實現(xiàn)延遲隊列的實踐

    這篇是關(guān)于我使用Spring Cloud Steam操作RabbitMQ采用ttl+死信隊列的方式實現(xiàn)的延遲隊列。 在公司項目中遇到了需要延遲隊列的需求,為了以后可維護(hù)性和擴(kuò)展性要求必須要用Springcloud Stream組件來操作mq,而且公司的rabbit也不允許安裝延遲插件,只能用最原始的ttl+死信來實現(xiàn),在搭

    2024年02月12日
    瀏覽(26)
  • rabbitmq基礎(chǔ)7——隊列和消息過期時間設(shè)置、死信隊列、延遲隊列、優(yōu)先級隊列、回調(diào)隊列、惰性隊列

    rabbitmq基礎(chǔ)7——隊列和消息過期時間設(shè)置、死信隊列、延遲隊列、優(yōu)先級隊列、回調(diào)隊列、惰性隊列

    這里過一個知識點——過期時間,即對消息或隊列設(shè)置過期時間(TTL)。一旦消息過期,消費就無法接收到這條消息,這種情況是絕不允許存在的,所以官方就出了一個對策——死信隊列,死信隊列最初出現(xiàn)的意義就是為了應(yīng)對消息過期丟失情況的手段之一。 那么過期時間具

    2024年02月03日
    瀏覽(100)
  • RabbitMQ學(xué)習(xí)——發(fā)布訂閱/fanout模式 & topic模式 & rabbitmq回調(diào)確認(rèn) & 延遲隊列(死信)設(shè)計

    RabbitMQ學(xué)習(xí)——發(fā)布訂閱/fanout模式 & topic模式 & rabbitmq回調(diào)確認(rèn) & 延遲隊列(死信)設(shè)計

    1.rabbitmq隊列方式的梳理,點對點,一對多; 2.發(fā)布訂閱模式,交換機(jī)到消費者,以郵箱和手機(jī)驗證碼為例; 3.topic模式,根據(jù)規(guī)則決定發(fā)送給哪個隊列; 4.rabbitmq回調(diào)確認(rèn),setConfirmCallback和setReturnsCallback; 5.死信隊列,延遲隊列,創(chuàng)建方法,正?!佬?,設(shè)置延遲時間; 點對

    2024年02月13日
    瀏覽(92)
  • .NetCore 使用 RabbitMQ (交換機(jī)/隊列/消息持久化+mq高級特性+死信隊列+延遲隊列)

    .NetCore 使用 RabbitMQ (交換機(jī)/隊列/消息持久化+mq高級特性+死信隊列+延遲隊列)

    目錄 一、安裝mq 二、實操 1、簡單模式 2、工作模式 3、fanout扇形模式(發(fā)布訂閱) 4、direct路由模式也叫定向模式 5、topic主題模式也叫通配符模式(路由模式的一種) 6、header 參數(shù)匹配模式 7、延時隊列(插件方式實現(xiàn)) 參考資料: 1、我的環(huán)境是使用VMware安裝的Centos7系統(tǒng)。MQ部署

    2023年04月09日
    瀏覽(111)
  • RabbitMQ基礎(chǔ)(2)——發(fā)布訂閱/fanout模式 & topic模式 & rabbitmq回調(diào)確認(rèn) & 延遲隊列(死信)設(shè)計

    RabbitMQ基礎(chǔ)(2)——發(fā)布訂閱/fanout模式 & topic模式 & rabbitmq回調(diào)確認(rèn) & 延遲隊列(死信)設(shè)計

    1.rabbitmq隊列方式的梳理,點對點,一對多; 2.發(fā)布訂閱模式,交換機(jī)到消費者,以郵箱和手機(jī)驗證碼為例; 3.topic模式,根據(jù)規(guī)則決定發(fā)送給哪個隊列; 4.rabbitmq回調(diào)確認(rèn),setConfirmCallback和setReturnsCallback; 5.死信隊列,延遲隊列,創(chuàng)建方法,正?!佬牛O(shè)置延遲時間; 點對

    2024年02月10日
    瀏覽(98)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包