0
点赞
收藏
分享

微信扫一扫

Rocket MQ 使用问题整理

佛贝鲁先生 2022-03-11 阅读 118
javaapache

Rocket MQ 使用问题整理

1、官方后台管理工具

rocketmq-console?rocketmq-dashboard!

网上有些文章写的是rocketmq-console,下载地址:
https://hub.fastgit.org/apache/rocketmq-externals
但是截至本文时间,后台管理工具为rocketmq-dashboard,下载地址:https://hub.fastgit.org/apache/rocketmq-dashboard

2、消费者启动时invokeSync call timeout

Caused by: org.apache.rocketmq.remoting.exception.RemotingTimeoutException: invokeSync call timeout
	at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:375)
	at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1367)
	at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1357)
	at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:622)
	... 5 more

有两种解决办法:

  1. 将Rocket MQ maven依赖版本调整为4.5.0;
		<!-- Rocket MQ -->
		<dependency>
	        <groupId>org.apache.rocketmq</groupId>
	        <artifactId>rocketmq-client</artifactId>
	        <version>4.5.0</version>
	    </dependency>
  1. 在启动consumer前,提前加载DefaultChannelId类,使其静态代码块先执行完成。
	  ......
            // 提前加载DefaultChannelId类,使其静态代码块先执行完成
            DefaultChannelId.newInstance();
            consumer.start();
            log.info("消费者启动");
      ......

3、生产者发送时sendDefaultImpl call timeout

Caused by: org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:635)
	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendOneway(DefaultMQProducerImpl.java:928)
	at org.apache.rocketmq.client.producer.DefaultMQProducer.sendOneway(DefaultMQProducer.java:354)
	at com.rocket.mq.main.demo.producer.OnewayProducer.main(OnewayProducer.java:36)

解决办法步骤:
1、修改broker.conf,增加ip配置信息

brokerIP1=127.0.0.1
namesrvAddr=127.0.0.1:9876

2、启动时绑定ip

start mqnamesrv.cmd -n "127.0.0.1:9876"
start mqbroker.cmd -n 127.0.0.1:9876 -c ../conf/broker.conf autoCreateTopicEnable=true

3、生产者发送时CODE: 14 DESC: service not available now, maybe disk full

1、修改runserver.cmd,增加空间大小

-server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

1、修改runbroker.cmd,增加空间大小

-server -Xms512m -Xmx512m -Xmn256m"
-XX:MaxDirectMemorySize=2g"

后记

本文只是记录本人学习过程中的理解,可能有部分内容有纰漏,望各位不吝赐教。

举报

相关推荐

0 条评论