Kafka入门, 消费者工作流程(十八)

news2024/10/7 20:34:24

kafka消费方式

在这里插入图片描述
pull(拉)模式:
consumer采用从broker中主动拉取数据。
Kafka采用这种方式。
push(推)模式:
Kafka没有采用这种方式,因为由broker决定消息发送速率,很难适应所有消费者的速率。例如推送速度是50m/s,consumer1,consumer2就来不及处理消息
pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中,一致返回空数据

消费者总体工作流程

在这里插入图片描述
1)每个消费者的offset由消费者提交到系统主题保存
2)每个分区的数据只能由消费者组中一个消费者消费
3)一个消费者可以消费多个分区数据

消费者原理

在这里插入图片描述
Consumer Group(CG):消费者组,由多个consumer组成,形成一个消费组的条件,是所有消费组groupid相同。
消费者组内每个消费者负责消费不同的分区数据,一个分区只能由由一个组内消费者消费。
消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
在这里插入图片描述
1)如果消费组中添加更多的消费者,超过主题分区数量,则有一部分消费者就会闲置,不会接收任何消息
2)消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者

消费者初始化流程

在这里插入图片描述
coordinator:辅组实现消费者组的初始化和分区的分配
coordinator节点选择=groupid的hashcode值%50(_consumer_offsets的分区数组)
例如:groupid的hashcode值=1,1%50=1,那么_consumer_offsets主题的1号分区,在哪个broker上,就选择这个节点的coordinator作为这个消费者组的老大,消费者组下的所有消费者提交offset的时候就往这个分区去提交offset
1)每个consumer都发送joinGroup请求
2)选出一个consumer作为leader
3)要把消费的topic情况发送给leader消费者
4)leader会负责指定消费方案
5)把消费方案分给coordinator
6)coordinator就把消费方案下发给各个consumer
7)每个消费者都会和coordinator保存心跳(默认3s),一旦超时(session.timeout.ms=45s),该消费者就会被一处,并触发再平衡,或者消费者处理消息的时间过长(max.poll.interval.ms5分钟),也会触发再平衡
在这里插入图片描述
Fetch.min.bytes每批次最小抓取大小,默认1字节
fetch.max.wait.ms一批数据最小值未达到的超时间,默认500ms
fetch.max.bytes每批次最大抓取大小,默认50m
max.poll.records一次拉取数据返回消息的最大条数,默认500条
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rocketmq客户端日志过大造成磁盘使用率占用过高

目录 问题现象 排查占用 自定义客户端日志配置未生效 总结 问题现象 收到项目报警:磁盘占用率超标通知 排查占用 从上述可以看出,实质是跟正常业务日志无关的,/home/work/log挂出来了,与/根目录下无关 查看根目录下日志占用…

frp实现远程开机

前一篇刷完小米路由器后,自带了frp,所以继续走着 前提:(我有阿里云公网服务器、域名) 第一步,配置路由器(客户端)frp [common] server_addr frp.xxx.cn #需要在阿里云服务器添加解析 serve…

【macOS 系列】如何取消程序坞下方app的未读消息的小红点

如何取消程序坞下方app的未读消息的小红点 需要针对单独的软件一次设置,不能批量设置。将标记为APP图标取消勾选即可。

【UnityDOTS 七】IAspect的使用

IAspect的使用 前言 IAspect是Unity DOTS中用来更方便组织数据集合的接口。可以将我们需要的数据集合放到一个IAspect中,然后用这个自定义的IAspect去进行查询。 一、IAspect是什么? 如上面官方文档说的,是一个高级的Component组合体。 可以…

Gartner发布2023新兴技术雷达图,超级自动化安全、生成式AI是高影响力技术

在Gartner发布的“2023新兴技术影响力雷达图”中,围绕智能世界、生产力革命、透明度和隐私****以及关键使能技术四大主题,对24种最具颠覆和市场变革性的新兴趋势和技术进行了评估。 其中,边缘AI、边缘计算机视觉处于雷达图核心位置&#xff…

Redis-问题

1.redis的槽是什么? Redis Cluster中有一个16384长度的槽的概念,他们的编号为0、1、2、3……16382、16383。这个槽是一个虚拟的槽,并不是真正存在的。 2.redis的槽有什么用? 缓存 对于高访问量的网站,缓存是提高性能的重要手段。使用Redis槽技术可以将…

机器学习23:《数据准备和特征工程-I》概述

机器学习帮助我们找到数据中的模式,然后我们用这些模式来预测新的数据点。为了获得正确的预测,我们必须构建数据集并正确地转换数据。在《数据准备和特征工程》系列文章中,笔者将重点介绍这两个关键步骤。在【机器学习7:特征工程】…

项目预算Budgeting 中英对照(PLM230 Unit4)

1、an estimate of the required funds 预估所需资金 2、correspond to the approved funds 符合批准的资金 3、availability control 可用性控制 4、be warned before the budget is exhausted 耗尽之前警告 5、The budget differs from the project cost plan is binding.…

为您的服务台提供6个基于AI的使用案例

人工智能(AI)正在向IT服务管理(ITSM)迈进,有望重新定义事物的工作方式。但是,人工智能是否会实现其承诺,并能够真正使ITSM更容易、更有效呢?这就是我们即将在此系列中所探讨的"…

计网笔记--网络层

1--网络层概述 网络层主要问题: ① 网络层向运输层提供怎样的服务? (可靠或不可靠) ② 网络层寻址问题(IP 地址) ③ 路由选择问题 (路径) 重点在于:TCP/IP协议栈 2--网络…

使用Jetpack Compose实现PopupMenu

Jetpack Compose是Google推出的现代化UI工具包,使用声明式UI模式构建用户界面。它有许多内建的Composable函数,让开发者可以轻松实现各种界面元素,包括PopupMenu。在这篇博客中,我们将深入研究如何在Jetpack Compose中创建PopupMe…

Reaxys数据库免费使用方法

Reaxys 于 2009 年推出,作为 CrossFire与Beilstein 数据库的后继者。Reaxys继承了基本化合物、化学反应、化学性质、相关文献数据、合成计划信息的物质数据检索功能,以及来自选定期刊和专利的实验程序。Reaxys是一款商业化学信息检索工具,一般…

VS2019 Web应用如何添加Area区域:新搭建基架的项目

貌似跟以往不一样,VS2019 Web应用如何添加Area区域:新搭建基架的项目,如下图: 1、右键项目添加 2、弹出“添加已搭建基架的新项”对话框,选择“区域” 3、填写新基架项目名称-Area 4、自动创建成功 5、后续添加控制器…

QxRibbon 知:麒麟 ukui 搭建 Qt5 开发环境

文章目录 安装 openEuler 22.09 虚拟机安装 Qt5 开发环境构建 QxRibbon 安装 openEuler 22.09 虚拟机 VMware 安装 openEuler 22.09 桌面版(提供了 ukui 和 kiran 桌面)虚拟机 平台:x86_64 虚拟机配置:4核、4G内存、40G磁盘&…

如何在 Django框架下完成 websocket 连接

文章目录 websocket 和 socket 连接的区别与 Django 建立 websocket 连接ASGI v.s. WSGIDjango > 3.0ChannelsDaphnesettings.pyconsumers.py & routing.py 测试 websocket 连接postman websocket 和 socket 连接的区别 Websocket 和 Socket 是两种不同的通信协议&#…

Python采集二手车数据信息,看看什么车最适合你

目录标题 前言环境使用:模块使用:代码展示尾语 💝 前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: 第三方模块 需要安装的 requests >>> pip install requests parsel >>> pip install parsel c…

CTP WEB 100练(1/100)

考点:PHP代码审计 抓包发现source.php,访问下,出现了php代码 代码主体在这部分,满足三个条件:file不为空&file是字符串&checkFile通过 if (! empty($_REQUEST[file])&& is_string($_REQUEST[file])&am…

面试题:var、let、const的区别

var、let、const的区别 一、提出二、作用域不同2.1 作用域 三、变量提升四、重复声明五、可修改性六、初始值设置七、暂时性死区八、给全局添加属性总结若有错误,欢迎随时指正 一、提出 var是ES5提出的,let和const是ES6提出的。 二、作用域不同 2.1 作用…

大数据环境下保护个人隐私

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…