Open lzkisok opened 10 months ago
请问目前我的解决办法是否够优雅?
下面这个逻辑也没走到吗?
如上图,在执行quene.toFirstTopic时,返回的topic是p2p和retry,所以上面的逻辑走到了,但是还是拿不到brokerAddr @DongyuanPan
请问目前我的解决办法是否够优雅?
不建议这么修改,可以修改下面的代码取到正确的topic: quene.toFirstTopic时,判断一下是p2p和retry吗?如果是的话,就返回对应参数设置的p2p和retry的topic(这两个topic在配置里面要求提前在broker创建了)。
不过如果broker集群没有扩缩容,这个报错应该只会第一次出现一次吧,后续有别的topic(一级topic)会更新相应的broker地址。
原因如下: 如上图,获取不到brokerAddr,导致报The broker[" + queue.getBrokerName() + "] not exist 更近一步的原因是:
如上图,DefaultMQPullConsumer,没有topic,不会调用this.updateTopicRouteInfoFromNameServer(topic);导致this.brokerAddrTable为空,获取失败
this.updateTopicRouteInfoFromNameServer() 方法在rocketmq-client 4.9.3版本中的写法如下图: 可以正常调用。