Rocket MQ写入消息报错: service not available now, maybe disk full

前言:测试服的一台kafka好久没有接收到消息了,看了下日志,maybe disk full。。。。。

问题分析:

提示很明确嘛,磁盘占用问题。想来配置broker的时候有个占比参数 diskMaxUsedSpaceRatio=75%,应该是说 磁盘占用到这个比例就开始报警了。

一开始我以为是 消息数据占到了磁盘的75%,df -h 命令 看下磁盘的占用情况

storePathRootDir=/home/rocket  看了下归属,/目录确实占用了 96%。想当然的改了存储数据的根路径到 还有41G剩余空间的/mnt目录下,重启测试写消息

还是不行,然后立马想到,获取的可能是程序所在磁盘的占比,程序也在 /目录下,遂转移程序到 /mnt目录下,重启 nameserver 和 broker,写消息成功了

总结:

diskMaxUsedSpaceRatio=75%  磁盘占比判断的是MQ程序所在磁盘的占比,部署时应该将程序和数据都放在剩余空间足够的磁盘中。

后记:

刚写完博客,回去一看,又报错了,查了查还有个 storePathCommitLog 路径忘记改了,啪啪打脸,所以记得 rocketmqHome、storePathRootDir、storePathCommitLog 都要放在空间足够的磁盘下的目录里面。。。

最后再研究,其实关注的是 commitLogDiskRatio、consumeQueueDiskRatio,分别对应 storePathCommitLog 、storePathRootDir

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章