Description
Before Creating the Bug Report
-
I found a bug, not just asking a question, which should be created in GitHub Discussions.
-
I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.
-
I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
Runtime platform environment
ubuntu
RocketMQ version
5.3.1
JDK Version
Java8
Describe the Bug
2个master分摊消息,无slave
采用python客户端:https://github.com/apache/rocketmq-clients
topic:normal类型
1个消费者:循环调用simpleConsumer.receive来接收消息
1个生产者:调用producer.send来发送消息。
流量压力:无任何流量,仅手动测试。
master的flushDiskType已经都设成同步。
问题:概率的,生产者生产之消息之后,延迟半分钟到2分钟,消费者才消费到消息,
且在delay期间:消费者调用了receive函数多次无果。dashboard上查topic的consumer状态是delay 1条消息。
也就是说,master收到了消息,消费者一直尝试消费,但是消费者一直没有消费到。
规避:采用1个master,无此问题。
或者采用1个master,1个slave,无此问题。
多master,每master配备slave,有此问题。
多master,无slave,有此问题。
即仅在多个master分摊流量时,有此问题。
Steps to Reproduce
见bug描述
What Did You Expect to See?
mq的含义是实时消费,不管在任何组网下,单发测试都不能有分钟级的延迟。
期待多个master分摊消息,消费者组中消费者的数量任意,在此情况下,依然保持消息能实时消费。
What Did You See Instead?
另希望介绍一下normal类型topic的普通消费机制
猜测本问题,是否是因为:消费者某一时刻仅能监听1个master?如果有多个master,该消费者会在master之间切换队列,导致延迟?
如果是这样,请给出解决方案。
Additional Context
No response