第十五章 MQ高级篇 Lazy Queue

之所以引用惰性队列,就是为了提高消息的堆积能力,传统的RabbitMQ的消息默认是存储在内存当中,当并发量高的时候,容易造成消息堆积,当占用内存百分之40时,MQ会暂时停止生产者的消息投递,将一部分消息保存在磁盘中,从到导致暂时的不可用状态,MQ的性能也就忽高忽低。而惰性队列是直接保存在磁盘当中,保证了MQ的稳定性,但损耗了性能。

控制台创建Lazy Queue 队列

java代码创建 Lazy Queue 队列

基于bean的方式创建惰性队列

用注解的方式

其中queue和queusTodeclare的区别

在RabbitMQ中,queuesToDeclare和queue是两个不同的概念。

  1. queuesToDeclare(声明队列)是一个配置项,用于在RabbitMQ的客户端代码中指定要声明的队列。它可以是一个队列的列表,客户端将根据配置在连接到RabbitMQ时自动声明这些队列。这样可以确保在使用队列之前,它们已经存在于RabbitMQ中。

  2. queue(队列)是RabbitMQ中的基本组件之一,用于存储消息。客户端可以通过将消息发布到队列来发送消息,而消费者可以从队列中接收和处理消息。队列具有名称、持久化属性、自动删除属性以及其他配置参数,这些属性和参数可以在客户端代码中指定或在RabbitMQ的管理界面中进行设置。

区别在于,queuesToDeclare是客户端代码中的一个配置项,用于在连接到RabbitMQ时自动声明队列,而queue是RabbitMQ中实际存在的消息队列实体。queuesToDeclare用于告诉客户端需要声明哪些队列,而queue则是实际的队列对象,用于存储和处理消息。通过声明队列,客户端可以确保队列在使用之前已经存在,避免了因队列不存在而引发的错误。

结果

接下来我发送100万条数据,测试一下性能

结果

我们可以看到图中他的峰值拿到了每秒6万条,并且不阻塞

重启mq看消息是存在,因为我们刚刚设置的持久化消息

消息是在的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值