毎日の記録 - SpringBoot は RabbitMQ セクション 6 (遅延キュー) を統合します

RabbitMQ のバージョン 3.6.0 から、Lazy Queues、つまり遅延キューの概念が追加されました。

遅延キューの特徴は次のとおりです。

  1. メッセージを受信すると、メッセージはメモリではなくディスクに直接保存されます。
  2. コンシューマは、メッセージを消費するときにディスクから読み取り、メモリにロードします。
  3. 数百万のメッセージストレージをサポート。

1.遅延キューの定義方法

キューを遅延キューとして設定するには、キューを宣言するときに x-queue-mode 属性を遅延として指定するだけです。
遅延キューはコマンド ライン、@Bean、アノテーションを通じて定義できますが、ここでは @Bean と @RabbitListener についてのみ説明します。

ここに画像の説明を挿入

1. @Bean で遅延キューを定義する方法 (この方法を推奨)


@Bean
public Queue lazyQueue(){
    
    
    return QueueBuilder.durable("lazy.queue")
            .lazy() //设置为惰性队列
            .build();
}


@Bean
public Queue lazyQueue(){
    
    
         Map<String, Object> args = new HashMap();
        //队列设置给惰性队列
        args.put("x-queue-mode", "lazy");
        return new Queue("lazy.queue",true,false,false,args);
}

2. @RabbitListener による遅延キューの定義方法

@RabbitListener アノテーションでキューを宣言するときに、x-queue-mode パラメータを追加します

@RabbitListener(queuesToDeclare = @Queue(
        value = "lazy.queue",
        durable = "true",
        arguments = @Argument(name = "x-queue-mode", value = "lazy")
))
public void handleLazyQueueMsg(String msg) {
    
    

}

おすすめ

転載: blog.csdn.net/qq407995680/article/details/132149647