| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 大数据之kafka消费者 -> 正文阅读 |
|
[大数据]大数据之kafka消费者 |
🍒今天是端午节,先祝大家端午节快乐!上一期我们学习了kafka的broker部分主要介绍了kafka中的副本、kafka文件的存储的原理,以及kafka的高效读写的保证,今天我们来介绍kafka中的消费者原理,对往期内容感兴趣的小伙伴可以参考👇:
🍑消费者作为kafka中最重要的部分,如何从主题中消费数据是我们重点关注的地方,话不多说,让我们开始今日份的学习吧! 本文目录1. 数据消费方式通常来说,消费者消费数据的方式有2种,一种是拉取数据的方式,另一种是broker主动推数据。 1.1 pull模式kafka中,消费者采用的消费数据的方式是拉取数据的模式,主动从broker中拉取数据。(如果broker中没有数据,可能会造成拉取为空的死循环。) 1.2 push模式push模式是指broker主动向消费者推送数据,但是由于每个消费者的消费速率不太一样,导致推送的速率很难适应所有的消费者。 2. 消费者和消费者组初学者对于消费者和消费者组的概念容易搞混,本章在这里单独拿出来讲解。 2.1 消费者组和消费者的关系第一种情况,如下图,消费者组1中含有一个消费者1,需要消费主题T1中的数据,消费者1将接受主题T1中4个分区的数据。 第三种情况,如下图,消费者组1中有4个消费者1,2,3,4,需要消费主题T1中的数据,则每个分区都消费都消费一个主题分区的数据。 2.2 消费者组和主题的关系除了通过增加一个消费者组中的消费者个数来横向伸缩单个应用程序外,还经常出现多个应用程序从同一个主题读取数据的情况。这种需求只要保证每个应用程序有自己的消费者群组,就可以让它们获取到主题所有的消息。不同于传统的消息系统,横向伸缩 Kafka 消费者和消费者群组并不会对性能造成负面影响。 如下图,增加了一个消费者组2,虽然他们俩消费同一个主题的数据,但是消费者组2和消费者组1之间没有半毛钱关系,各自独立运行。
3. 消费者的工作流程3.1 消费者消费的大致流程
3.2 消费者组的初始化流程这里先介绍一个概念:
例如: groupid的hashcode值 = 1,1% 50 = 1,那么__consumer_offsets 主题的1号分区,在哪个broker上,就选择这个节点的coordinator作为这个消费者组的老大。消费者组下的所有的消费者提交offset的时候就往这个分区去提交offset。 消费者的消费流程如下,我们来详细解释一下:
注:这个过程中每个消费者都会和coordinator保持心跳默认3s(定期联系),上限是45s,如果45s内没有联系到该消费者,那么 coordinator会认为该消费者出现故障,将它移除,并触发再平衡;或者消费者处理数据的时间过长(5分钟以上)那么也会触发再平衡。 3.3 消费者组的详细流程上面介绍完了消费者初始化的流程,接下来就是消费者详细消费数据的流程:
4. 参考资料-《尚硅谷大数据技术之 Kafka》 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 4:53:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |