分享
Kafka消费者基于Offset消费过程.pptx
下载文档

ID:3447950

大小:420.28KB

页数:24页

格式:PPTX

时间:2024-05-07

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Kafka 消费者 基于 Offset 消费 过程
Kafka消费者基于Offset消费过程,Kafka消费者组的设计消费者根据Offset消费过程消费者消费中遇到的问题手动提交Commit Offset,目录,Content,一个消费者消费Topic,Topic有3个分区,消费者只能按照顺序串行消费,性能较差,Kafka消费者组的设计,如何不设计消费者组,生产者Producer,Kafka集群,TopicA,200万条part0,200万条part1,200万条part2,消费者Consumer,生产者生产600万条数据,Part0-200万条,Part1-200万条,Part2-200万条,消费者组Consumer Group,一个消费者组消费一个Topic,Topic有3个分区,消费者组中有3个消费者,三个消费者并行消费分区,性能较高,Kafka消费者组的设计,构建消费者组,多个消费者并行消费,生产者Producer,Kafka集群,TopicA,200万条part0,200万条part1,200万条part2,消费者1Consumer1,生产者生产600万条数据,消费者2Consumer2,消费者3Consumer3,Kafka消费者组的设计消费者根据Offset消费过程消费者消费中遇到的问题手动提交Commit Offset,目录,Content,生产者不断将数据生产写入Topic的分区中,每个分区写入数据并添加offset,消费者根据Offset消费过程,生产者第一次生产数据,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,消费者消费对应分区的数据,并记录自己当前消费的offset,用于下一次消费请求,消费者根据Offset消费过程,消费者根据Offset消费数据,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,第一次消费从offset为0开始消费,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,记录当前消费Offset为:1,记录当前消费Offset为:1,记录当前消费Offset为:0,消费者根据上一次记录的消费Offset+1,向Kafka继续请求消费每个分区下个批次的数据,消费者根据Offset消费过程,消费者根据Offset消费数据,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,消费者组Consumer Group,Consumer1,Consumer2,Consumer3,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,下一次消费从上次消费的offset+1开始消费,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,记录当前消费Offset为:3,记录当前消费Offset为:2,记录当前消费Offset为:1,Offset:2-K6 V6Offset:3-K7 V7,Offset:2-K8 V8,Offset:1-K9 V9,Offset:2-K6 V6Offset:3-K7 V7,Offset:2-K8 V8,Offset:1-K9 V9,Kafka消费者组的设计消费者根据Offset消费过程消费者消费中遇到的问题手动提交Commit Offset,目录,Content,消费者将每次消费成功的Offset自动维护在自己的内存中,如果消费者故障,内存中的offset就会丢失,消费者消费中遇到的问题,问题1:如果消费者故障,重启消费者,消费者如何知道自己上一次的消费位置?,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,消费者组Consumer Group,Consumer1,Consumer2,Consumer3,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,下一次消费从上次消费的offset+1开始消费,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,记录当前消费Offset为:1,记录当前消费Offset为:1,记录当前消费Offset为:0,Offset:2-K6 V6Offset:3-K7 V7,Offset:2-K8 V8,Offset:1-K9 V9,消费者将每次消费成功的Offset自动维护在自己的内存中,如果消费者故障,内存中的offset就会丢失,消费者消费中遇到的问题,问题1:如果消费者故障,重启消费者,消费者如何知道自己上一次的消费位置?,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,消费者组Consumer Group,Consumer1,Consumer2,Consumer3,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,下一次消费从上次消费的offset+1开始消费,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,上次的Offset从内存中丢失,上次的Offset从内存中丢失,上次的Offset从内存中丢失,Offset:2-K6 V6Offset:3-K7 V7,Offset:2-K8 V8,Offset:1-K9 V9,Kafka会将每个消费者的offset持久化在一个自带的Topic中,消费者消费中遇到的问题,问题1的解决:Kafka会定期自动将每个消费者消费的分区的Offset记录在_consumer_offsets中,生产者Producer,Kafka集群,TopicA,part0,part1,part2,生产者源源不断的生产KV数据,消费者组Consumer Group,Consumer1,Consumer2,Consumer3,K1 V1K2 V2K3 V3K4 V4K5 V5,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,下一次消费从上次消费的offset+1开始消费,Offset:0-K1 V1Offset:1-K4 V4,Offset:0-K2 V2Offset:1-K5 V5,Offset:0-K3 V3,记录当前消费Offset为:1,记录当前消费Offset为:1,记录当前消费Offset为:0,Offset:2-K6 V6Offset:3-K7 V7,Offset:2-K8 V8,Offset:1-K9 V9,Topic_consumer_offsets,Kafka会将每个消费者的offset持久化在一个自带的Topic中,消费者消费中遇到的问题,问题1的解决:Kafka会定期自动将每个消费者消费的分区的Offset记录在_consumer_offsets中,生产者Producer,Kafka集群,TopicA,part0,

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开