网站信息维护方案,免费网站怎么做排名,知名的网页制作公司推荐,大同百度做网站多少钱测试背景#xff1a;
不同条件下RabbitMQ不同队列类型的生产时延测试#xff1a;
测试环境#xff1a;
机型#xff1a;rabbimtq.2u4g.cluster 背景流量#xff1a;1000 TPS
测试条件#xff1a;
消息大小 4k#xff0c;消息条数为1000条#xff0c;时延取值为平均…测试背景
不同条件下RabbitMQ不同队列类型的生产时延测试
测试环境
机型rabbimtq.2u4g.cluster 背景流量1000 TPS
测试条件
消息大小 4k消息条数为1000条时延取值为平均时延
测试结果
测试场景生产时延一生产时延二生产时延三普通队列333普通队列持久化333普通队列开启生产确认474747普通队列开启事务505151惰性队列223惰性队列持久化333惰性队列生产确认505151惰性队列开启事务545555镜像队列2副本233镜像队列生产确认484848
测试结论
如上测试场景开启消息持久化/开启镜像队列/配置惰性队列 并不会对消息生产时延造成较大影响对生产时延造成较大影响的主要因素为开启生产确认或使用事务机制。
消息的deliveryMode /Queue的durable状态truefalse1:不持久化不持久化不持久化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());