您的位置:首页 > 健康 > 养生 > 海南省海洋监测预报中心_网站制作设计教程_云搜索网页版入口_全国各城市感染高峰进度查询

海南省海洋监测预报中心_网站制作设计教程_云搜索网页版入口_全国各城市感染高峰进度查询

2025/1/5 11:18:00 来源:https://blog.csdn.net/weixin_43180484/article/details/144511907  浏览:    关键词:海南省海洋监测预报中心_网站制作设计教程_云搜索网页版入口_全国各城市感染高峰进度查询
海南省海洋监测预报中心_网站制作设计教程_云搜索网页版入口_全国各城市感染高峰进度查询

测试背景

不同条件下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());

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com