Enregistrements quotidiens - SpringBoot intègre RabbitMQ Section 2 (Persistance des messages de la file d'attente de commutation)

1. Description

Nous devons nous assurer que les commutateurs, les files d'attente et les messages sont persistants, sinon ils seront perdus au redémarrage de MQ ou dans d'autres cas, à moins que vous ne pensiez que le message à envoyer n'est vraiment pas important, même s'il est perdu, cela n'a pas d'importance .

2. Changer la persistance

Cliquez pour afficher le code source du switch créé, le switch est persistant par défaut
insérer la description de l'image ici

La première façon de créer

J'ai déjà mentionné plusieurs types de commutateurs, permettez-moi de prendre comme exemple les commutateurs de type fanout.

    //定义持久化交换机
    @Bean
    public FanoutExchange fanoutExchange() {
    
    
        //第三个参数就是持久化的意思
        return new FanoutExchange("fanout.exchange",true,false);
    }

La deuxième façon de créer

    //定义direct类型交换机
    @Bean
    public DirectExchange directExchange() {
    
    
        return ExchangeBuilder.directExchange("direct.exchange").build();
    }

3. Persistance de la file d'attente

La première façon de créer

    //定义持久化队列
    @Bean
    public Queue directQueue1() {
    
    
        //第二个参数就是持久化的意思
        return new Queue("direct.queue1",true,false,false);
    }

La deuxième façon de créer

   //定义持久化队列
    @Bean
    public Queue topicQueue1(){
    
    
        return QueueBuilder.durable("topic.queue1").build();
    }

4. Persistance des messages

        //消息持久化
        Message message = MessageBuilder
                .withBody("你好".getBytes())
                //设置为持久化消息
                .setDeliveryMode(MessageDeliveryMode.PERSISTENT)
                .build();
        rabbitTemplate.convertAndSend("fanout.exchange", "", message, correlationData);

Je suppose que tu aimes

Origine blog.csdn.net/qq407995680/article/details/132107173
conseillé
Classement