rocketmq java 客户端调用No route info of this topic错误(原因版本不一致)

天坑

网上找了半天,启动broker的时候设置autoCreateTopicEnable=true没有用

调试,最后发现rocketmq的版本和rocketmq client的版本不一致导致

使用的rocketmq的版本是4.3.0,java client端版本不对

rocketmq 的 4.3.0版本的自动创建(autoCreateTopicEnable),客户端传递使用的AUTO_CREATE_TOPIC_KEY_TOPIC是”AUTO_CREATE_TOPIC_KEY
而使用旧版本的client,客户端传递的默认AUTO_CREATE_TOPIC_KEY_TOPIC是“TBW102

因此,需检查两者的版本是否能对上

替换client的版本

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Java调用RocketMQ需要使用RocketMQ Java客户端。您可以按照以下步骤进行操作: 1. 在Maven项目中添加RocketMQ Java客户端的依赖: ```xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.5.2</version> </dependency> ``` 2. 创建一个生产者或消费者实例: ```java // 创建一个生产者实例 DefaultMQProducer producer = new DefaultMQProducer("producer_group"); // 创建一个消费者实例 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_group"); ``` 3. 配置实例属性: ```java // 配置生产者实例属性 producer.setNamesrvAddr("localhost:9876"); // 配置消费者实例属性 consumer.setNamesrvAddr("localhost:9876"); consumer.subscribe("topic_name", "*"); // 订阅主题 consumer.registerMessageListener(new MessageListenerConcurrently() { @Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { // 处理消息 return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); ``` 4. 启动实例: ```java // 启动生产者实例 producer.start(); // 启动消费者实例 consumer.start(); ``` 5. 发送消息(使用生产者实例): ```java Message message = new Message("topic_name", "tag_name", "Hello RocketMQ".getBytes()); SendResult result = producer.send(message); System.out.println(result); ``` 6. 关闭实例: ```java // 关闭生产者实例 producer.shutdown(); // 关闭消费者实例 consumer.shutdown(); ``` 以上是Java调用RocketMQ的基本步骤,您可以根据需要进行进一步的调整和配置。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值