关键词:
RabbitMq保证消息可靠性之确认模式
前提
完成 SpringBoot 整合 RabbitMq 中的Topic通配符模式
一、更改Producer工程的application.yml文件
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: /
username: username
password: password
publisher-confirm-type: correlated #开启确认默认
server:
port: 8080
二、更改ProducerTest.java文件 ConfirmCallback
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class RabbitMqTest
@Resource
private RabbitTemplate rabbitTemplate;
@Test
public void test() throws InterruptedException
String body = "确认模式的消息";
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback()
/**
*
* @param correlationData 配置信息
* @param b 是否收到信息
* @param s 失败的原因
*/
@Override
public void confirm(CorrelationData correlationData, boolean b, String s)
if (b)
log.debug("发送信息到交换机成功!");
else
log.debug("发送信息到交换机失败:",s);
//第二次发送 rabbitTemplate.convertAndSend("topic_exchange","item.body",body);
);
//为了达到确认消息模式
//报出异常方法:【在消费端产生一个异常比如 100/0 就会触发 ConfirmCallback】
rabbitTemplate.convertAndSend("topic_exchange","item.body",body);
Thread.sleep(2000);
三、测试
首先运行 ProducerTest.java 单元测试,然后在启动 ConsumerListener.java 消息监听器
- 如果已经存在 topic_queue 请先删除后再执行单元测试
四、小结
第一次发送消息,发送消息时出现异常问题,就会调用到 ConfirmCallback 方法,会再次进行发送.保证消息的可靠性,不会丢失.
rabbitmq高级特性之延迟队列通俗易懂超详细内含案例
RabbitMq高级特性之延迟队列消息进入队列后不能立即被消费,到达指定时间后才可被消费实现结合以下两种即可达到延迟队列RabbitMq高级特性之TTL过期时间RabbitMq高级特性之DLX死信队列延迟队列小结延迟队列指消息进入队列后,经过... 查看详情
rabbitmq高级特性之死信队列通俗易懂超详细内含案例(代码片段)
RabbitMq高级特性之死信队列又称死信交换机DLX当消息成为Deadmessage后,会重新发送到另一个交换机,这个交换机就是DLX消息成为死信的情况公有三种:队列消息长度达到限制消费者拒接消费消息basicNack/basicReject,并且不把消息重新放回... 查看详情
rabbitmq高级特性之ttl存活时间/过期时间通俗易懂超详细内含案例(代码片段)
RabbitMq高级特性之TTL存活时间/过期时间每条消息设置过期时间整个Queue队列设置过期时间前提完成RabbitMq高级特性之消费端限流一、每条消息设置过期时间1.更改ProducerTest.java文件importlombok.extern.slf4j.Slf4j;importorg.junit.Test;importorg.juni... 查看详情
rabbitmq高级特性之消费端限流通俗易懂超详细内含案例(代码片段)
RabbitMq高级特性之消费端限流一丶首先部署SpringBoot框架完成SpringBoot整合RabbitMq中的Topic通配符模式二丶在resource资源文件夹里application.yml文件中添加配置spring:rabbitmq:listener:simple:acknowledge-mode:manual#开启手动签收prefetch:3#一次就收三... 查看详情
rabbitmq超详细学习笔记(章节清晰+通俗易懂)(代码片段)
...学习,最近花了一段时间系统学习了当下最为主流的RabbitMQ消息队列,学习过程中也随时记录,刚开始学习的时候懵懵懂懂,做的笔记都比较杂乱,系统学习完后我将笔记内容不断反复修改,对章节进行设... 查看详情
设计模式之单例模式(通俗易懂,超详细)
先上总结:单例模式就是在内存中只会创建且仅创建一次对象的设计模式,因为只创建一次对象,所以构造方法私有化,通过getInstence方法获取对象。单例模式分为懒汉式和饿汉式,懒汉式是在调用时创建对象,需要注意线程安... 查看详情
rabbitmq之消息模式简单易懂,超详细分享
前言上一篇对RabbitMQ的流程和相关的理论进行初步的概述,如果小伙伴之前对消息队列不是很了解,那么在看理论时会有些困惑,这里以消息模式为切入点,结合理论细节和代码实践的方式一起来学习。正文常用... 查看详情
节清晰+通俗易懂)(代码片段)
...学习,最近花了一段时间系统学习了当下最为主流的RabbitMQ消息队列,学习过程中也随时记录,刚开始学习的时候懵懵懂懂,做的笔记都比较杂乱,系统学习完后我将笔记内容不断反复修改,对章节进行设... 查看详情
13.rabbitmq消息可靠性投递confirm确认模式(代码片段)
...息丢失或者投递失败的现象; RabbitMQ在消息投递可靠性方面给我们提供了两种模式; 1,confirm确认模式 2,return退回模式confirm确认模式介绍以及实现 confirm机制,消息的确认,是指... 查看详情
03rabbitmq进阶1之可靠性投递(代码片段)
目录Pt1可靠性投递Pt1.1可靠性风险Pt1.2保证生产者发送消息给Broker(1)事务模式(Transaction)(2)确认模式(Confirm)Pt1.3保证Exchange路由消息到队列(1)消息回发(2)消息路由到备份ExchangePt1.4保证消息在队列存储(1)Queue持久... 查看详情
rabbitmq消息可靠性的机制
RabbitMQ消息可靠性一、发布确认机制。生成者发送消息,Exchange路由消息到队列,RabbitMQ就会给生产者发送确认Ack。(注意:发布确认机制不能和事务机制一起使用)注意:多消息发布确认机制情况下,倘若要发送100条消息,发送... 查看详情
rabbitmq高级之如何保证消息发送可靠性(代码片段)
1.RabbitMq的发送机制学过RabbitMq的同学们大概都知道了RabbitMq发送机制引入了Exchange(交换机的概念),消息发送方,首先把消息发送到交换机这是第一个步骤,然后交换机在把消息路由到不同的队列中(Queue)这是第二个步骤,在有不同的消... 查看详情
节清晰+通俗易懂)(代码片段)
...学习,最近花了一段时间系统学习了当下最为主流的RabbitMQ消息队列,学习过程中也随时记录,刚开始学习的时候懵懵懂懂,做的笔记都比较杂乱,系统学习完后我将笔记内容不断反复修改,对章节进行设... 查看详情
rabbitmq可靠投递(代码片段)
...场景。RabbitMQ为我们提供了两个选项用来控制消息的投递可靠性模式。rabbitmq整个消息投递的路径为:producer->rabbitmqbrok 查看详情
如何保证消息队列的可靠性传输?
参考技术A消息丢失分成三种情况,可能出现生产者、RabbitMQ、消费者。首先要确保写入RabbitMQ的消息别丢,消息队列通过请求确认机制,保证消息的可靠传输。生产开启comfirm模式,在生产者开启comfirm模式之后,每次发送消息都... 查看详情
rabbitmq之消息可靠性死信交换机惰性队列及集群(代码片段)
文章目录一.消息可靠性1.生产者消息确认2.消息持久化3.消费者消息确认4.消费失败重试机制二.死信交换机1.死信2.TTL3.延迟队列三.惰性队列1.消息堆积问题2.惰性队列四.MQ集群1.集群分类2.普通集群3.镜像集群4.仲裁队列MQ的一些常... 查看详情
rabbitmq:第一章:6种工作模式以及消息确认机制(理论与代码相结合)(代码片段)
...xff0c;广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失, 查看详情
近九万字图文详解rabbitmq
...tMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)一、项目代码1.生产者1.项目架构图:2.pom.xml依赖:3.spring-rabbitmq-producer.xml:4.rabbitmq.prop 查看详情