zooah212
zooah212
> 我遇到过,不过我是5.0版本。 我理解是第一条消息发送时由于topic没有创建,所以第一条消息去触发了topic的创建(其实是consume queue的初始化)然后由于topic还没有创建(在消息被broker接收到时)所以消息发送失败了(write consume queue fail),所以在这里应该加一个重试,我原本打算debug一下这块的细节,不过还没来得及做。 不过丢失了第一条消息确实是一个已知的问题。 感谢,我测试了 5.0.0 和 5.1.3 都是有这个问题。而且如果是 mq 集群时,这个问题更让人头疼,单机时至少发第二次能够发出去,但是集群时如果正好创建了 topic 的 broker 宕机,那么后续再发消息其他的 broker 不会再自动创建 topic,除非重启应用。
> 还真的是。我也复现这个问题了。 同样的5.1.3版本 嗯。当在高可用场景下,会出现更严重的问题。如果有两个 master A 和 B,当发消息的时候会随机在某个 master 上面创建 topic,比如在 master A 上面创建好了 topic,之后发/收消息会正常;但是当 master A 挂掉之后,再发消息则 Producer 会直接报错,发不出消息,且 master B 上面也不会再创建 topic,除非重启应用。。。
> 我用的5.3.3,用的simple 走的 proxy 8081。 比如我有topic叫 topicTest,必须手动创一个%RETRY%topicTest ,不然就报错说%RETRY%topicTest不存在。 然后消费者组consumerGroup必须设置和主题一个名字topicTest,不然就报%RETRY%topicTest_topicTest不存在。 > > 总结就是:非常离谱 之前的版本遇到过这个问题吗?