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

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