当前位置: 首页 > news >正文

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());

http://www.mrgr.cn/news/80452.html

相关文章:

  • Go 语言结构
  • STM32F407ZGT6-UCOSIII笔记2:UCOSIII任务创建实验-Printf 函数卡住 UCOSIII 系统问题解决
  • 第二届CN-fnst re题wp
  • 【C++】青蛙跳跃问题解析与解法
  • 2 C语言
  • python爬虫爬取淘宝热销(热门)台式电脑商品信息(课程设计;提供源码、使用说明文档及相关文档;)
  • 具身智能之视觉语言导航(VLN)类别与基准
  • ActiveMQ 反序列化漏洞CVE-2015-5254复现
  • BERTective: Language Models and Contextual Information for Deception Detection
  • Gate学习(7)引入体素源
  • React简单入门 - [Next.js项目] - 页面跳转、AntD组件、二级目录等
  • 【SQL】语句练习
  • SpringBoot项目监听端口接受数据(Netty版)
  • RT-Thread启动过程 :从汇编开始的启动流程
  • 信息安全工程师-选择题考点总结
  • flutter 多文本,其中文本下划线往下移动
  • Node的学习以及学习通过Node书写接口并简单操作数据库
  • 概率论得学习和整理22:EXCEL数据清洗的几个功能总结备忘
  • NVM:安装配置使用(详细教程)
  • 代码审计之Fastjson利用链
  • jenkins pipeline打包流程
  • LWIP协议:三次握手和四次挥手、TCP/IP模型
  • Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览
  • 音频进阶学习八——傅里叶变换的介绍
  • uniapp/HBuilder X引入weex报错weex is not defined
  • 3.1 角度