Skip to content

BUG : Consumers start slowly #3434

@Cczzzz

Description

@Cczzzz

It takes a long time for consumers to start to consume. max waiting time is ClientConfig#heartbeatBrokerInterval = 1000*30
(30s).
and in broker broker.log,you will find :
2021-10-27 11:29:03 WARN PullMessageThread_35 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:03 WARN PullMessageThread_49 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:03 WARN PullMessageThread_62 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:03 WARN PullMessageThread_75 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:04 WARN PullMessageThread_33 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:04 WARN PullMessageThread_44 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:04 WARN PullMessageThread_55 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:04 WARN PullMessageThread_106 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:04 WARN PullMessageThread_102 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:05 WARN PullMessageThread_37 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:05 WARN PullMessageThread_109 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:05 WARN PullMessageThread_1 - The broker's subscription is not latest, group: test_order *
2021-10-27 11:29:05 WARN PullMessageThread_4 - The broker's subscription is not latest, group: test_order *

原因:
broker 中会比较 subscription 的版本号,这个版本号由客户端心跳上报。理论broker 的版本号和客户端是一致的。
在进行rebalance 时,如果rebalance 发生了变化(第一次启动会触发),就会更新本地的版本号,然后主动更新到broker。
RebalancePushImpl#83
// notify broker
this.getmQClientFactory().sendHeartbeatToAllBrokerWithLock();

理论上这样 客户端和broker 的版本号还是一样的。
但是在实际情况中,rebalance 完成后这时有可能心跳定时任务也在进行,这会导致获取 lockHeartbeat 锁失败。无法发送心跳。此时 broker 的版本号会小于客户端版本号。直到 下次心跳定时任务后,broker 版本号和本地一致,才能开始正常消费。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions