[apache/rocketmq]消息队列RocketMQ版本客户端消耗的内存过多

2023-12-12 273 views
2
  1. 请描述您观察到的问题:
  • 你做了什么(重现的步骤)?在使用rocketmq的过程中,发现当生产者发送过多的消息,但是消费端消费过慢会出现消费端关闭gc,我认为是消费端servermq数量过多造成的

  • 预计会看到什么?我想控制一下消费端服务器消息的数量

  • 你看到了什么?我看到阿里云上面有解决方案调整Consumer的maxCachedMessageSizeInMiB参数至合适的值,但是使用这个在master直接查询,并没有查到这个变量控制消息存储的大小 https://help.aliyun.com/document_detail/85936 .html

不知道现在是没有,还是说,我的查询关键字有问题 client 4.4.0

回答

1

我在 中找到了一些信息client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java

在 RocketMQ 4.4 中

图像

在 RocketMQ 5.0 中

1665400760107

9

@aaron-ai 我们可以使这个值启发式...也就是说,它们的默认值可以根据堆大小计算。

7

开源的和商业参数的名称有一些不一样,但是都是可以通过参数控制,可以看看@nowinkeyy同学的回复。

6

默认值1000条消息,100M的缓存,明显也不大啊,为何有GC问题?

2

阿里云上面说每个topic有16个队列,每个队列1000条,这样就有点大了,我算了要算服务器1个g