网站首页 > 博客文章 正文
前言
RocketMQ配置中有一个设置项为transferMsgByHeap,即是否通过堆内存传输数据。在文章“RocketMQ存储--同步刷盘和异步刷盘”中对其进行过梳理。那transferMsgByHeap是开启好呢?还是关闭好!第二个问题是可以设置消费的线程数,由于无界队列所以只需要设置最小线程数consumeThreadMin即可,那在rocket-client4.7版本中还能这么用吗?
一、transferMsgByHeap误解
transferMsgByHeap设置为false时,通过堆外内存传输数据,相比堆内存传输减少了数据拷贝,即:零字节拷贝,效率更高。所以关闭transferMsgByHeap应该成为我们的优先选择,但是实践来看,你或许会改变想法,下面是transferMsgByHeap=false,客户端大量超时错误时的日志截图。
1.Broker日志截图
2.CPU日志截图
3.系统日志截图
4.源码报错截图
小结:你看到这里会发现,在关闭transferMsgByHeap时,可能造成堆外内存分配不够,触发系统内存回收和落盘操作。此时CPU会有一个陡坡,具体客户端表现为发送大量超时。解决方式开启transferMsgByHeap即可,让运行更加平稳。
二、消费的最小线程数
我们在使用rocketmq消费时,有两个参数consumeThreadMin和consumeThreadMax。在以往的版本中,我们只需要设置consumeThreadMin即可,例如consumeThreadMin=64。在rocket-client4.7版本中,如果设置consumeThreadMin=64会导致消费失败,下面看下原因。
1.错误提示
org.apache.rocketmq.client.exception.MQClientException: consumeThreadMin (64) is larger than consumeThreadMax (20)
2.源码原因
小结:在rocketmq-client新版本中,增加了consumeThreadMax的判断。当consumeThreadMin大于20时需要同时设置consumeThreadMax,所以单独设置consumeThreadMin=64会抛出错误导致消费失败。
- 上一篇: RocketMQ最全详解(图文全面总结)
- 下一篇: Spring Boot 集成 RocketMQ
猜你喜欢
- 2024-12-12 RocketMQ同一个消费者唯一Topic多个tag踩坑经历
- 2024-12-12 RocketMQ——RocketMQ搭建及问题解决
- 2024-12-12 腾讯云微服务正式发布RocketMQ Serverless版本
- 2024-12-12 3分钟白话RocketMQ系列—— 核心概念
- 2024-12-12 RocketMQ如何避免未来再次发生积压
- 2024-12-12 rocketmq延迟消息实现原理(上)
- 2024-12-12 RocketMQ跨队列的顺序消费
- 2024-12-12 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等多个分布式消息队列比较
- 2024-12-12 应如何在 Spring Boot 中使用 RocketMQ 实现批量消息消费?
- 2024-12-12 RocketMQ 5.0 多语言客户端的设计与实现
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)