1.win10环境下发送消息失败,提示磁盘空间不足
service not available now, maybe disk full, CL: 0.93 CQ: 0.93 INDEX: 0.93, m
此处的原因是电脑上C盘的剩余空间不多。RocketMQ的broker数据存储默认的目录是在C盘的当前用户文件夹下的store目录,需要有4G的空闲空间才能正常运行。
解决方案(二者选其一)
建立软链接。可以把store目录链接到其余空闲空间较多的磁盘目录中。
修改conf/broker.conf。在该文件末尾加上以下配置。
storePathRootDir=d:/logs/rocketmq/data/store
storePathCommitLog=d:/logs/rocketmq/data/store/commitlog
storePathIndex=d:/logs/rocketmq/data/store/index
storePathConsumeQueue=d:/logs/rocketmq/data/store/consumequeue
2.MQBrokerException: CODE: 1 DESC: create mapped file failed, server is busy or broker
解决方案
发现jdk是32位的,换成64位的oracle jdk就可以了,且jdk版本必须高于等于jdk8。
判断jdk是否64位可在命令行中输入java -version,如果有显示64-Bit的字样就是64位的,没有的话大概率是32位的
3.maven依赖和配置文件
pom.xml中添加RocketMQ的相关依赖(后两个依赖的version需和自己安装的版本号一致)
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>5.0.0-ALPHA</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-common</artifactId>
<version>5.0.0-ALPHA</version>
</dependency>
yml配置
rocketmq:
#nameservice服务器地址(多个以英文逗号隔开)
name-server: 127.0.0.1:9876
#生产者配置
producer:
group: my-group # 指定发送者组名
send-message-timeout: 6000 # 发送消息超时时间,单位:毫秒。默认为 3000 。
compress-message-body-threshold: 4096 # 消息压缩阀值,当消息体的大小超过该阀值后,进行消息压缩。默认为 4 * 1024B
max-message-size: 4194304 # 消息体的最大允许大小。。默认为 4 * 1024 * 1024B
retry-times-when-send-failed: 2 # 同步发送消息时,失败重试次数。默认为 2 次。
retry-times-when-send-async-failed: 2 # 异步发送消息时,失败重试次数。默认为 2 次。
retry-next-server: false # 发送消息给 Broker 时,如果发送失败,是否重试另外一台 Broker 。默认为 false
4.bin目录和conf目录中一些配置文件的修改
修改runserver.cmd中的JVM参数值
原参数值
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改后的参数值
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
修改runbroker.cmd中的JVM参数值
原参数值
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g"
修改后的参数值
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
修改runbroker.cmd中的MaxDirectMemorySize
原参数值
set "JAVA_OPT=%JAVA_OPT% -XX:MaxDirectMemorySize=15g"
修改后的参数值
set "JAVA_OPT=%JAVA_OPT% -XX:MaxDirectMemorySize=1024m"
在conf/broker.conf中添加配置
namesrvAddr=127.0.0.1:9876
listenPort=10911
#broker监听的ip
broketIP1=127.0.0.1