RabbitMQ 消息持久化/镜像队列/lazy对时延影响

在这里插入图片描述

测试背景

不同条件下RabbitMQ不同队列类型的生产时延测试:

测试环境

机型:rabbimtq.2u4g.cluster 背景流量:1000 TPS

测试条件

消息大小 4k,消息条数为1000条,时延取值为平均时延

测试结果

测试场景生产时延一生产时延二生产时延三
普通队列333
普通队列+持久化333
普通队列+开启生产确认474747
普通队列+开启事务505151
惰性队列223
惰性队列+持久化333
惰性队列+生产确认505151
惰性队列+开启事务545555
镜像队列(2副本)233
镜像队列+生产确认484848

测试结论:

如上测试场景,开启消息持久化/开启镜像队列/配置惰性队列 并不会对消息生产时延造成较大影响,对生产时延造成较大影响的主要因素为开启生产确认或使用事务机制。

消息的deliveryMode /Queue的durable状态truefalse
1:不持久化不持久化不持久化
2:持久化持久化不持久化

想要宕机时保证消息不丢失,则队列及消息都需要开启持久化

代码示例:

Connection connection = connectionFactory.newConnection();
Channel channel = connection.createChannel();
// 持久化exchange
channel.exchangeDeclare("test", "fanout", true);
// 持久化队列
channel.queueDeclare("queue", true, false, false, new HashMap<>());
channel.basicPublish("test", "test", MessageProperties.PERSISTENT_TEXT_PLAIN, sb.toString().getBytes());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默终止

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值