RongtongJin commented on issue #353: URL: https://github.com/apache/rocketmq-spring/issues/353#issuecomment-907718496
> > > 都是已经创建的没有问题。这个是我从@RocketMQMessageListener注解使用追踪过来的。 > > > 正常项目里会有多个@RocketMQMessageListener注释的RocketMQListener接口实现,我看源代码里会分别对应每个@RocketMQMessageListener创建一个对应的DefaultMQPushConsumer。 > > > 项目里有一个Listener是的demo的,topic和consumerGroup都没有创建, > > > @RocketMQMessageListener(topic = "my-demo-topic", consumerGroup = "demo-group") > > > 这样定义的,它之后定义的Listener就注册不上了,它之前的还可以注册,把这个demo注释掉就好了 > > > > > > 我没有复现问题,但我怀疑和这个PR有关 #270 ,这个PR会导致同一个进程中起多个consumer,如果他们的nameserver配置相同,那么他们算同一个实例,但我不确定。是否有更加具体的日志来帮助进行排查 > > 是有关系的,因为用的是同一个MQClientInstance,在org.apache.rocketmq.client.impl.factory.MQClientInstance#sendHeartbeatToAllBroker方法发送心跳到nameserver时,几个consumer是合并成了同一个心跳请求(final HeartbeatData heartbeatData = this.prepareHeartbeatData();),而这个请求返回是失败的。没看nameserver的处理过程,应该是会校验这个几个consumer的配置,有一个是异常的,整个请求就失败了,所以会导致共用这个MQClientInstance的几个consumer都注册不上吧。 > 碰到同样无法注册的问题。最终定位情景是这样的,启动两个DefaultMQPushConsumer,第一个设置的topic与consumerGroup都是没有在阿里云控制台里创建的,启动无异常。第二设置的topic与consumerGroup是有创建的,启动无异常,但是在控制台看不到。单独启动第二个consumer不会有问题。 这种场景下两个consumer的nameserver配置是否相同? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
