rocketmq消费者不能连接到nameserver的问题

国庆放假之前,主管将数据库更新并且重启所有的服务器。然后国庆之后发现国庆期间消费者并没有处理消息。

消息的生产是正常的,国庆期间产生了好几万条消息,但是查看消费订阅组却发现并没有消费者存在。

我多次重启了消费者服务器,但是发现并没有报错也没有打印消费日志,找了各种代码的原因都没有发现问题。

因为一直不报错,这是最让程序员头疼的情况,所以我故意写了错误的nameserver地址,

原来的配置mq.cumsumer.namesrvAddr=mq:9876,我改成mq.cumsumer.namesrvAddr=mq123:9876,

结果惊奇地发现消费者还是正常启动而没有报错,然后尝试了各种明显错误的域名,发现还是不报错。这时候我想起来似乎rocketmq生产者也只有在发送消息的时候会报错,所以这可能是rocketmq的一个机制,用来防止nameserver暂时的关闭和重启,所以不像mysql,redis,zookeeper一样,如果连接不上就直接报错甚至连项目都不能启动。但是这很容易对人产生误导。

总之既然消费者不会因为地址错误而报错,所以我就合理地怀疑是域名配置的错误。查看消费者服务器的配置后发现配置的是固定的外网路径。所以将域名配置成docker的内部路径后就成功了。在这之前docker的配置都是测试做的,用的是docker-compose命令,这次我也上网了解了一下docker-compose的配置,学习了一下,不亏

你可能感兴趣的:(bug)