MQClientException: No route info of this topic, topicTest01的原因

MQClientException: No route info of this topic, topicTest01


問題原因
maven版本和服務器不一樣。按照官方文檔執行的案例出錯,主要是官方文檔推薦的下載包是4.4.0,然後案例引入的maven是4.3.0。所以導致出現異常。

maven

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

producer

public class SyncProducer {
    public static void main(String[] args) throws Exception{

        //注意maven引入的版本要和服務器的版本一致
        DefaultMQProducer producer = new DefaultMQProducer("test_sync_group");
        //我的虛擬機IP地址10.8.80.87
        producer.setNamesrvAddr("10.8.80.87:9876");
        producer.start();
        for (int i=0; i<20; i++){
            //String topic, String tags, byte[] body
            Message message = new Message("topicTest01","TagA",("hello rocketMq"+i).getBytes(RemotingHelper.DEFAULT_CHARSET));
            SendResult sendResult = producer.send(message);
            System.out.printf("%s%n", sendResult);
        }
        producer.shutdown();
    }
}

consumer

public class Consumer {
    public static void main(String[] args) throws MQClientException {
        //指定組
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test_sync_group");
        //指定服務器
        consumer.setNamesrvAddr("10.8.80.87:9876");
        // Subscribe one more more topics to consume.
        consumer.subscribe("topicTest01","*");

        consumer.registerMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
                System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        //運行消費者實例
        consumer.start();
        System.out.printf("Consumer Started.%n");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章