RocketMQ:No route info of this topic问题解决及虚拟机安装RocketMQ实例

No route info of this topic这个问题在今天困扰了我很久,我重新安装了好几遍,在自己电脑虚拟机里面直接安装、采用docker方式安装,在云服务器上直接安装、采用docker方式安装,均出现此问题,当然还有一些其他问题出现,在这里就不说了,快疯了,最后一次尝试,在虚拟机里面直接安装,冷静下来想了一下,RocketMQ是需要broker和server两个服务一起工作的,然而我为了避免内存问题和ip问题一直是在broker那里进行操作,却遗漏了server,马上回过去启动server,果然就成功了,接下来贴出虚拟机直接安装RocketMQ的实例,至于docker方式,这里就不贴了

#首先将RocketMQ的压缩包传入自定义的目录,然后解压缩,至于目录问题,大家看自己的喜好
#进入解压目录
cd {RocketMQ home}/bin
#这里是自己练手的话,建议还是把内存大小参数改了,打开如下两个.sh,然后对应着去修改
vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m XX:MaxMetaspaceSize=128m"

vim runbroker.sh 
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"

#为了避免犯我上面说的那种低级错误,现在就启动server服务,注意目录位置不要改变
./mqnamesrv 
#出现如下所示即为成功
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: MaxNewSize (270336k) is equal to or greater than the entire heap (131072k).  A new max generation size of 131008k will be used.
The Name Server boot success. serializeType=JSON

#接下来可以新开一个命令行窗口
#不要直接启动broker服务,因为这里是我们自己虚拟机里面安装,所以会出现ip问题
#现在要建立一个conf配置文件,目录大家随意,可以就在现在的目录进行创建,但是一会启动的时候需要指定完整路径
vim {完整路径}/broker.conf
brokerIP1=虚拟机ip
namesrvAddr=虚拟机ip:9876 
brokerName=brokerName  #这里可以随意取
#保存退出后,注意现在的路径还是刚刚的路径,路径变了的话,需要改过来,才可以执行下面的命令
./mqbroker -c {完整路径}/broker.conf 
#出现如下所示即为成功,注意ip为自己虚拟机的ip
The broker[shuai, 192.168.xx.xxx:10911] boot success. serializeType=JSON and name server is 192.168.xx.xxx:9876

接下来可以写一段代码进行测试
pom.xml

 <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-client</artifactId>
      <version>4.3.2</version>
</dependency>

java代码

public class Test{

    public static void main(String[] args) throws Exception {
        DefaultMQProducer producer = new DefaultMQProducer("test");

        producer.setNamesrvAddr("192.168.xx.xxx:9876");

        producer.start();

        //发送消息
        String msg = "这是一个信息";
        Message message = new Message("shuai", "message", msg.getBytes("UTF-8"));
        message.putUserProperty("sex","男");
        message.putUserProperty("age","20");
        SendResult sendResult = producer.send(message);
        System.out.println("消息id:" + sendResult.getMsgId());
        System.out.println("消息队列:" + sendResult.getMessageQueue());
        System.out.println("消息offset值:" + sendResult.getQueueOffset());
        System.out.println(sendResult);

        producer.shutdown();
    }
}

顺利打印出如下值即为成功

消息id:C0A801652E2018B4AAC25B5297910000
消息队列:MessageQueue [topic=shuai, brokerName=shuai, queueId=0]
消息offset值:1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值