RabbitMQ(高级)笔记

一、生产者可靠性

(1)生产者重连(不建议使用)

复制代码
logging:
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS

spring:
  rabbitmq:
    virtual-host: /hamll
    port: 5672
    host: 192.168.92.136
    username: hmall
    password: 123
    listener:
      simple:
        prefetch: 1
    connection-timeout: 1s
    template:
      retry:
        enabled: true
        initial-interval: 1000ms
        multiplier: 1
        max-attempts: 3

(2)生产者确认

引入日志依赖

复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

二、MQ持久化

(1)持久化介绍

发送100万条消息给队列,需要先在application.yml中取消生产者确认

复制代码
    publisher-confirm-type: none
    publisher-returns: false

没有持久化的测试用例,会出行阻塞的状态:

改为持久化后的测试用例:

(2)最好的持久化方式Lazy Queue

三、消息可靠性

(1)消费者确认

使用auto自动模式

(2)失败重试机制

(3)业务幂等性

四、延迟消息

(1)死信交换机

注意:创建的simple.queue需要Add Dead letter exchange,其他都跟之前创建的操作差不多

监听

复制代码
    @RabbitListener(queues = "dlx.queue")
    public void listenDlxQueue(String msg){
        log.info("dlx.queue消费者收到消息:"+msg);
    }

测试用例

复制代码
    @Test
    void testSendTTLMessage(){

        rabbitTemplate.convertAndSend("simple.direct", "hi", "hello", new MessagePostProcessor() {
            @Override
            public Message postProcessMessage(Message message) throws AmqpException {
                message.getMessageProperties().setExpiration("10000");
                return message;
            }
        });
        log.info("消息发送成功!");
    }

(2)延迟消息插件

(3)取消订单

相关推荐
MoFe120 小时前
【.net core】【RabbitMq】rabbitmq在.net core中的简单使用
分布式·rabbitmq·.netcore
Engineer邓祥浩20 小时前
JVM学习笔记(11) 第四部分 程序编译与代码优化 第10章 前端编译与优化
jvm·笔记·学习
大大杰哥20 小时前
力扣hot100笔记(1)
笔记·leetcode
何中应20 小时前
在windows本地部署RabbitMQ
分布式·消息队列·rabbitmq
雾岛听蓝20 小时前
Qt按钮与标签控件详解
开发语言·经验分享·笔记·qt
Wild API20 小时前
按任务轻重做模型分流的实战思路
分布式·微服务·架构
夜瞬20 小时前
NLP学习笔记06:关系抽取——从规则方法到预训练模型
笔记·学习·自然语言处理
oi..20 小时前
从 0 到 1:文件上传漏洞的校验、绕过与真实场景利用
网络·笔记·计算机网络·安全·web安全·网络安全·xss
一只机电自动化菜鸟21 小时前
一建机电备考笔记(21):石油化工设备(含考频+易错点)
经验分享·笔记·学习·职场和发展·课程设计
Pentane.21 小时前
力扣HOT100:T.1 两数之和|循环遍历算法笔记及打卡(12/100)
c++·笔记·算法·leetcode