Kafka消费流程
2020-04-23 18:33:15 1 举报
kafka consumer poll 流程
作者其他创作
大纲/内容
循环跳出判断
acquireAndEnsureOpen获取轻量级锁&确保消费实例未关闭
fetcher.sendFetches发送拉取请求从broken获取
循环拉取消息子流程
Y
返回消息集合
N
timer.notExpired是否超时
release释放轻量级锁
pollForFetchesd通过Fetcher拉取消息,先从本地缓存completedFetches队列拉取,本地没有则发送拉取请求从broken中拉取消息
fetcher.sendFetches异步预拉取下一批消息至本地队列缓存
poll
maybeTriggerWakeup是否触发了wakeup
subscriptions.hasNoSubscriptionOrUserAssignment当前是否已经订阅或用户分配Topic
开始
结束
updateAssignmentMetadataIfNeeded如果需要则更新Metadata
进入循环
取到消息
从缓存取
completedFetches本地阻塞队列缓存消息
拉取成功
取不到则请求
返回空集合
阻塞至请求处理完毕并返回结果
0 条评论
下一页