Kafka Consumer底层原理分析【Kafka系列】

Kafka Consumer底层原理分析【Kafka系列】,第1张

Kafka Consumer底层原理分析【Kafka系列】

微服务相关工具
  • 目录
    • 概 述
  • 小结
  • 参考资料和推荐阅读

LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code and KPI, Keep progress,make a better result.
Survive during the day and develop at night。

目录 概 述
  1. 低阶API

本质上是提供了一种与broker交互信息的API
运行过程中一直卡住没有成功消费,加入如下错误信息判断,发现error code为1

剩下的处理全靠用户自己的程序,功能比较简单,但用户扩展性比较强

  1. API结构
    首先与broker通信,寻找到leader(不与zookeeper通信,不存在groupid),然后直接和leader通信,指定offset去消费。消费多少,从哪里开始消费,都可控(我们的例子是从0开始消费)

说明我们从offset 0消费offsetoutofrange了
(我们发送请求topic1 partition0的offset 0 broker回复我们offset out of range,因为kafka中已经没有offset 0 的数据了,已经过期清理掉了)

  1. 交互过程
    使用SimpleConsumer的步骤
  2. 从所有活跃的broker中找出哪个是指定Topic Partition中的leader broker
  3. 获取kafka中已存在的offset访问(或人工指定)
  4. 构造请求
  5. 发送请求查询数据
  6. 获取查询结果,处理(判断获取的结果,进行相应的处理)
    处理就包括:
    l 处理offset不存在的情况
    l 处理offset的增长
    l 处理leader broker变更
    (当连接的这个brokerdown掉,我们要写程序捕获异常并且写程序去切换broker,重新连接)
    注意:该API是不阻塞的,SimpleConsumer传一个请求过去,不论是数据过期、新的数据还没来等,都会有一个response回来的
小结

kafka 消费者相关,低阶API的consumer,指定查找topic某个partition的指定offset去消费

参考资料和推荐阅读

1.链接: 参考资料.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5619355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存