更新时间:2020-12-29 18:28
/{user.home}/logs/sofamq.log
能搜索到 OutOfMemory
关键字。ConsumeMessageThread_
线程无消费卡住现象。默认客户端最多会给每个 Topic 的每个队列缓存 1000 条消息。假设每个 Topic 的队列数是 16 个(集群 2 主 2 备,每台 broker 上 8 个队列),该 Topic 下单条消息平均大小为 64 KB,那么最终该 Topic 在客户端缓存的消息 Size:16 1000 64 KB = 1 GB。如果用户同时订阅了 8 个 Topic 都在客户端内存缓存消息,最终占用内存将超过用户的 JVM 配置,导致 OOM。
ConsumerBean
启动时,配置com.alipay.sofa.sofamq.client.PropertyKeyConst#MAX_CACHED_MESSAGE_SIZE_IN_MI_B
参数自行定义最大消耗内存(范围在 16 MB ~ 2048 MB)。ConsumerBean
设置com.alipay.sofa.sofamq.client.PropertyKeyConst#MAX_CACHED_MESSAGE_SIZE_IN_MI_B
参数,然后重启应用。在 /{user.home}/logs/sofamq.log
中 OutOfMemory
关键字不再出现。登录消息队列控制台,选择 Group 管理 > 消费者状态,看到 实时消费速度 栏的值上升,同时堆积量的值下降。
在文档使用中是否遇到以下问题
更多建议
匿名提交