主要就是以上两个问题,这两个问题看了很多博客都没解决,终于找到了办法,搞了我好久;从下图中可以看到生产者需要定期的通过服务器的:9876端口来获取路由信息,并且生产者也需要通过broker的端口来进行消息的收发;所以我们需要保证生产者和这两者之间的正常连接;
1、启动NameServer服务器
nohup sh bin/mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log
2、启动broker
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success…
第一个问题:我发现这边broker启动的时候这边的ip很奇怪,不是我自己的服务器ip,所以出现了connect to <172.22.235.159:10911> failed)这个问题,别人的当然连接失败;
第一个问题解决办法:
1、修改broker配置
vim /home/prod/rocketmq-all-4.3.0/distribution/target/apache-rocketmq/conf/broker.conf
brokerIP1=xx.xx.xx.xx # 你的公网IP (这是由于跨域造成的:)
2、重新启动并保证带上配置
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
3、启动消息生产者
public class Product {
public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException, MQBrokerException {
DefaultMQProducer producer = new DefaultMQProducer("group");
producer.setNamesrvAddr("121.89.234.241:9876");
producer.start();
for (int i = 0; i < 10; i++) {
Message message = new Message("orders",("order" + i).getBytes());
SendResult result = producer.send(message);
System.out.println(result);
System.out.println(message + "send out");
Thread.sleep(500);
}
producer.shutdown();
}
}
第二个问题:No route info of this topic, orders;
解决办法:关闭防火墙systemctl stop firewalld,重新启动成功;



