解决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

以上步骤操作完成后,再尝试发送消息:

原文地址:https://www.cnblogs.com/shenrong/p/12670555.html

时间: 2024-08-02 16:43:30

解决rocketmq发送消息报错: service not available now, maybe disk full, CL: 0.87 CQ: 0.87 INDEX: 0.87, maybe your broker machine memory too small的相关文章

小程序模板消息报错41028。解决方法

小程序模板消息报错41028 序 最近在写小程序支付回调的时候,想要去触发小程序模板消息,然而过程却很不顺利.一切参数正确的情况下,尽然返回报错41028 41028报错解释 官方:form_id不正确,或者过期 form_id是什么 即wxml文件里面的form表单提交后产生的ID,我这里使用的是支付回调所以这个解释比较的次要. 如果在支付环境里面,form_id就换成你的prepay_id当然如果你已经做过微信支付了那你应该就知道这个东西 模板消息 模板消息数据组装 官方文档:https:/

解决mysqldump备份报错: Couldn't execute 'SHOW FIELDS FROM Unknown error 1356

服务器环境: [[email protected] mysql]# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core) [[email protected] mysql]# uname -aLinux localhost.localdomain 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

解决JVM启动报错:Unrecognized VM option '+HeapDumpOnOutOfMemeryError'

今天再搞一些OutOfMemery的相关知识探索,我想在JVM遇到OOM错误的时候,能够打印出heap dump,以便事后用Eclipse Memory Analyzer Tool(MAT)等内存分析工具分析内存的占用情况.我使用了JDK1.6.0_37和JDK1.7.0_60版本进行试验,到网上找了下,知道-XX:+HeapDumpOnOutOfMemoryError可以让JVM在探测到内存OOM的时候打印dump.但是在JVM启动参数添加这个参数的时候,JVM启动失败: Unrecogniz

重启Apache报错apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting的解决方法

启动apache提示 : apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName (1)

修改grub解决计算机启动报错:ERROR 17

修改grub解决计算机启动报错:ERROR 17 原本计算机有C,D,E,F,G.C盘windows系统盘,G盘安装了Centos.后来由于需要,就压缩卷的方式从D盘压缩出一个H盘.然后再次启动计算机的时候就遇到了错误:ERROR 17 原因: 就在于先安装windows后安装Linux这样的话,grub就由位于G盘的Centos引导,现在该分区之前又划分出一个新的逻辑分区,就导致磁盘系统符号向后移了一位,因此grub失败. 解决方案: 1,刻录一个Linux安装U盘,进入BIOS修改启动项,从

解决连接mysql时报错"Can't connect to local MySQL server through socket '/tmp/mysql.sock'"

命令行连接mysql时,报了“Can't connect to local MySQL server through socket '/tmp/mysql.sock'”的错误:用Navicat连接是报62号错误. 首先确定我本机是装了mysql的 尝试用安全模式启动mysql,命令行执行: /usr/local/bin/mysqld_safe 完了之后运行mysql,成功了. 解决连接mysql时报错"Can't connect to local MySQL server through soc

zbb20180716 SpringBoot 使用feign时报错Service id not legal hostname

SpringBoot 使用feign时报错Service id not legal hostname SpringBoot 使用feign时报错Service id not legal hostname(xx_sss) 原因是feign不支持下划线"_",支持"-",改成xx-sss即可 参考:https://github.com/spring-cloud/spring-cloud-netflix/issues/1582 原文地址:https://www.cnblo

【转】解决Maxwell发送Kafka消息数据倾斜问题

最近用Maxwell解析MySQL的Binlog,发送到Kafka进行处理,测试的时候发现一个问题,就是Kafka的Offset严重倾斜,三个partition,其中一个的offset已经快200万了,另外两个offset才不到两百.Kafka数据倾斜的问题一般是由于生产者使用的Partition接口实现类对分区处理的问题,一般是对key做hash之后,对分区数取模.当出现数据倾斜时,小量任务耗时远高于其它任务,从而使得整体耗时过大,未能充分发挥分布式系统的并行计算优势(参考Apache Kaf

解决集成jpa时报错无法创建少导入entityManagerFactory的问题

解决集成jpa时报错无法创建少导入entityManagerFactory的问题 最近将IDEA 2018.1版本更新到了2018.2版本,更新好后跑了一下之前的项目,结果就报错了,这个项目集成了spring data jpa.由于该错误有多种原因导致,在解决该错误的时候也花了一些时间,所以特别记录一下.关键的报错信息如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name