RocketMQ内存传输及4.7消费线程参数设置的示例分析

这篇文章主要介绍了RocketMQ内存传输及4.7消费线程参数设置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联公司是一家专注于网站设计制作、网站设计与策划设计,临澧网站建设哪家好?成都创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:临澧等地区。临澧做网站价格咨询:13518219792

一、transferMsgByHeap误解

 

transferMsgByHeap设置为false时,通过堆外内存传输数据,相比堆内存传输减少了数据拷贝、零字节拷贝、效率更高,所以关闭transferMsgByHeap应该成为我们的优先选择,但是实践来看,你或许会改变想法,下面是transferMsgByHeap=false,客户端大量超时错误时的日志截图。

1.Broker日志截图 

RocketMQ内存传输及4.7消费线程参数设置的示例分析

2.CPU情况   
 
 

RocketMQ内存传输及4.7消费线程参数设置的示例分析

3.系统日志截图     
 

RocketMQ内存传输及4.7消费线程参数设置的示例分析

4.源码报错截图     
 

RocketMQ内存传输及4.7消费线程参数设置的示例分析

小结:你看到这里会发现,在关闭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内存传输及4.7消费线程参数设置的示例分析

RocketMQ内存传输及4.7消费线程参数设置的示例分析

在rocketmq-client新版本中,增加了consumeThreadMax的判断。当consumeThreadMin大于20时需要同时设置consumeThreadMax,所以单独设置consumeThreadMin=64会抛出错误导致消费失败。

感谢你能够认真阅读完这篇文章,希望小编分享的“RocketMQ内存传输及4.7消费线程参数设置的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


网站名称:RocketMQ内存传输及4.7消费线程参数设置的示例分析
链接URL:http://bzwzjz.com/article/gigije.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 外贸网站建设 网站建设费用 营销型网站建设 定制网站建设 成都网站建设 泸州网站建设 成都网站建设公司 专业网站设计 网站制作 网站建设方案 攀枝花网站设计 成都网站制作 成都网站建设 成都网站建设 手机网站设计 成都网站设计 成都网站建设 达州网站设计 重庆网站建设 成都企业网站建设 高端网站设计推广