zoukankan      html  css  js  c++  java
  • RocketMQ消费批拉超过32不生效

    说明

    由于一些原因,我需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:

    image

    为了简单验证是否正确,消费如下:

    image

    直接通过打印msgs.size()观察情况即可。

    现象

    实验的topic里面的消息数量很多很多,但是启动消费端,消费端的日志如下:

    image

    奇怪啦,明明已经进行了修改

    image

    为什么还是每次只能消费32条呢?

    调试RocketMQ源码

    通过跟踪consumer代码:

    image

    这里的确已经设置为400了,那么我们需要跟踪到broker服务端进行查看了。

    image

    broker接受到的也是400,我们只有继续跟踪

    image

    因为返回为true导致下面的if判断成立,for循环就break了,所有只取了32条数据返回到consumer了:

    image

    image

    如果需要让可以一次拉取400条,需要修改broker这里的数据配置才可(其实关于一条消息大小也是类似的,虽然说最大设置16M,但是也是和这里同理需要设置broker相关的数据配置才可生效)。

    修改broker的配置文件,添加:maxTransferCountOnMessageInMemory=400 重启broker即可,效果如下:

    image

    效果正常,其实如果消息过大,还需要考虑下面几个参数:

    image

    总结

    需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:

    image

    还是达不到效果的,还需要设置broker相关的参数,本次里面设置broker的maxTransferCountOnMessageInMemory=400即可,其他情况需要考虑如下等参数。

    image

    文章github源代码地址:rocketmq,或者公号回复“rocketmq”获取源码地址。


    如果读完觉得有收获的话,欢迎点赞、关注、加公众号【匠心零度】,查阅更多精彩历史!!!

    img

  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/jiangxinlingdu/p/10073661.html
Copyright © 2011-2022 走看看