Consumer首次请求Broker

Broker中是否有符合条件的消息 如果有

响应Consumer

等待下次Consumer的请求

如果没有

DefaultMessageStore#ReputMessageService#run方法

PullRequestHoldService 来Hold连接,每个5s执行一次检查pullRequestTable有没有消 息,有的话立即推送

每隔1ms检查commitLog中是否有新消息,有的话写入到pullRequestTable

当有新消息的时候返回请求

挂起consumer的请求,即不断开连接,也不返回数据

使用consumer的offset