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)取消订单

相关推荐
秦明月138 分钟前
电气安全回路设计实战:皮尔兹安全继电器应用
经验分享·笔记·安全·职场和发展·创业创新·学习方法
笑鸿的学习笔记13 分钟前
计算机笔记之沙盒(Sandbox)
笔记
ljt272496066136 分钟前
Vue笔记(六)--响应式
javascript·vue.js·笔记
心中有国也有家1 小时前
CANN 算子开发完全指南——从 TBE DSL 到算子上线全流程
人工智能·经验分享·笔记·分布式·算法
Sahadev_1 小时前
GitMemo 安卓版发布了:现在可以随时随地查看和记录自己的笔记
android·笔记·创业创新
会编程的土豆1 小时前
消息队列(MQ)入门笔记
java·笔记·spring
atomicmaker1 小时前
进程/线程?并发/并行?
经验分享·笔记·其他
胡耀超1 小时前
《设计数据密集型应用》(DDIA, 2nd ed.) 心智模型导览——《Designing Data-Intensive Applications》书介绍导航
大数据·数据库·分布式·ai·架构·数据
余生皆假期-3 小时前
配置 CodeX 环境的 Simlink AI 工具链
笔记·单片机·嵌入式硬件·算法
sheeta19983 小时前
LeetCode 每日一题笔记 日期:2026.05.24 题目:1340. 跳跃游戏 V
笔记·leetcode·游戏