# SpringBootRabbitTest **Repository Path**: sunnyLu91/SpringBootRabbitTest ## Basic Information - **Project Name**: SpringBootRabbitTest - **Description**: SpringBoot集成RabbitMq - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2018-11-14 - **Last Updated**: 2024-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 配置 `pom.xml`添加依赖: ```xml org.springframework.boot spring-boot-starter-amqp ``` # 演示说明 ## 消息可靠性投递(Confirm模式) 执行单元测试:**DemoApplicationTests#testConfirm** ## 消息可靠性投递(Return模式) 执行单元测试:**DemoApplicationTests#testReturn** **描述:** - 单元测试中的routingKey不存在,所以消息投递不到队列中 ## 消息TTL(Time To Live) 执行单元测试:**DemoApplicationTests#testTtl** **描述:** - 对应的队列设置了10s的有效期,且不存在消费者,可以观察管理台发现10s消息消失 ## 延迟队列 执行单元测试:**DemoApplicationTests#testDelayConsum** **描述:** - 通过**TTL**+**死信队列**实现的延迟队列,具体查看**DelayConfig**的配置 ## 消费端ACK **步骤:** - **DemoApplication**启动类中须要放开对**sendMessage**调用的注释 - 启动项目 **描述:** - 消费端监听器**AckListener** - 通过模拟异常来实现*ack*和*nack* ## 消费端限流 **步骤:** - **DemoApplication**启动类中须要放开对**sendBatchMessage**调用的注释 - 启动项目 **描述:** - 消费端监听器**QosListener**,设置了一次性批量拉取5条数据,具体查看*ConfirmConfig#qosListenerContainer*配置 - 消费端没有*ack*,可以直观的看到一次性拉取5条数据 ## 死信队列(死信交换机) **描述:** - 具体查看*DeadLetterConfig*的配置,死信队列其实就是一个普通的队列 - 消费端监听器*DeadLetterListener* - *消息TTL(Time To Live)*测试的消息,到期后会进入死信队列 - *消费端ACK*测试的消息,假如消费端*nack*,且未重新入队列时,会进入死信队列 ## @RabbitListener **步骤:** - **DemoApplication**启动类中须要放开对**sendAndReceiveObj**调用的注释 - 启动项目 **描述:** - 消费端监听器**MessageListener** - 业务对象会自动进行转换