解決rocketmq發送消息報錯: service not available now, maybe disk full, CL: 0.87 CQ: 0.87 INDEX: 0.87, maybe your broker machine memory too small


1.問題出現

搭完mq單主單從集群之后,美滋滋想發一下message, 沒想到碰到一個坑爹的問題:

com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available now, maybe disk full, CL: 0.87 CQ: 0.87 INDEX: 0.87, maybe your broker machine memory too small.

 1 com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 14  DESC: service not available now, maybe disk full, CL:  0.87 CQ:  0.87 INDEX:  0.87, maybe your broker machine memory too small.
 2 For more information, please visit the url, https://github.com/alibaba/RocketMQ/issues/64
 3     at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.processSendResponse(MQClientAPIImpl.java:492)
 4     at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:398)
 5     at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:379)
 6     at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:698)
 7     at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:877)
 8     at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:851)
 9     at com.alibaba.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:163)
10     at com.ruishenh.rocketmq.example.Producer.main(Producer.java:78)

2.問題分析與解決

看報錯應該是磁盤空間不足的問題,然后各種百度,發現解釋的都是很模糊,沒有真正解決到點子上,然后看到一個帖子https://bbs.csdn.net/topics/392568834,還挺符合的,雖然給出的解決方案說的沒那么詳細,但是值得一試。

2.1.應該是磁盤空間的問題,先看看磁盤空間

 

 

 已用95%,查閱百度之后發現rocketmq源碼的DefaultMessageStore類里,默認會把剩余磁盤的比率不足75%(rocketmq版本不同這個比率好像不一樣)當做磁盤空間不足處理,看來磁盤是有點不夠了。

2.2.既然磁盤空間不夠,那就配置一下,把默認磁盤比率放大一些

先cd到rocketmq配置文件的路徑,我這里配置的是雙主雙從同步的模式,所以cd到配置文件(根據配置的不同文件夾的路徑不一樣,但都在/conf下)。

  1. cd rocketmq-all-4.7.0-bin-release/conf/2m-2s-sync/
  2. vim broker-a.properties
  3. 在最后加一行diskMaxUsedSpaceRatio=99(所有節點的配置文件都加一下),表示剩余磁盤比例不足99才報錯

       

4.:wq 保存退出

5.重啟mq

以上步驟操作完成后,再嘗試發送消息:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM