KAFKA设计之CONSUMER

华为OD机试真题 新系统 9月16号 【统计特殊数字】 华为OD新系统机试真题【统计特殊数字】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【统计特殊数字】。 阅读详情

KAFKA CONSUMER

说明

摘自官方文档,自己按照大概意思翻译的
http://kafka.apache.org/documentation/#theconsumer

正文

“推数据”还是“拉数据”

推数据的话,推什么数据和推的频率都要由broker控制,最终我们要达到的目的其实是在最短的时间内消费最多的数据,当推数据的频率很大时,很容易压垮consumer,例如收到攻击的时候。
拉数据的话还可以更积极地处理更多的数据,如果是推数据的话,需要了解下游consumer的状态,同步这些状态信息会造成浪费。
拉数据的缺点如果broker都没有数据了,可是consumer还是需要频繁地去查看broker是否有数据。为了避免这个,可以用参数控制允许consumer请求的频率减小,知道有数据到了broker(或者到broker的数据达到一定量时才处理)
producer会本地存一份,broker再去拉取,就类似是一个“store-and-forward”的角色。当有成千上万个producer时,这种模式推展性就很好,运维起来也不会很难。

消费者的位置

大多数的消息系统都是给了消费者信息后,本地保存一份,然后等到消费者有通知了,更新信息的元数据。这样做很实用,broker一知道消费者的处理状态后马上删除,保持了信息队列的大小。当消息发送出去后,标识为send,收到消费者的处理状态后,标识为consumed。这样解决了消息丢失的问题,但是引入了一个新问题。首先,如果consumer在处理消息完之前就把状态传回去,这样就会导致消息处理了两次。第二个问题是现在broker需要为了消息的多个状态(首先要锁住不传给消费者两次,然后要更新消息状态,再从队列删掉),复杂点的情况是,消息发出去了,然后就再也没有得到消息更新的状态了。
kafka的处理方式是,topic分成了排序好的完整的partitions集合,每一份都可能被订阅了同个消费组的consumer消费,这就意味着每个消费者的位置在每个partitions里面是一个数字,下一个需要消费的消息的偏移量。这样使得“什么被消费了”的这种状态信息量非常小,只是每个partition的一个数字。这个状态可以作为周期性的检查点,消息的确认通知非常小信息量。
还有另一个好处,消费者可以故意回滚到某一个旧的偏移量从新消费消息。例如,消费程序有个bug,可以在修复完bug之后,从新消费整个分配的队列。

离线数据加载

灵活的持久性特性使得消费者可以周期性地批量读取数据,存储到Hadoop或者关系型数据库里面。
对于Hadoop来说,通过map任务并行地加载数据,一个对应一个node/topic/partition联合体,支持全部一起并行地加载。Hadoop还提供任务管理工具,失败的任务可以轻松地从原来的位置继续执行,避免了有产生副本数据的危险。

Unity零基础到进阶 ☀️| Unity中的 GC及优化 超级全面解析 ☆(ゝω・)v 建议收藏! 介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。 本文我们主要学习垃圾回收的机制,垃圾回收如何被触发以及如何提GC收效率来提高游戏的性能。 Unity内存管理机制简介 要想了解垃圾回收如何工作以及何时被 阅读详情

相关推荐

西门子SCL出栈入栈算法(附带源码)

栈是一种数据结构,它的特点是数据后入先出(Last In First Out,LIFO)或者说是先入后出,意思是一样的。栈有三个基本动作:初始化、入栈和出栈。接下来给大家介绍下我使用SCL语言编写的栈函数,它以不定长数组作为存储区,以实数作为数据类型,实现了栈的初始化、入栈和出栈的操作。

CHUXUEZHE8210的博客 2331

动态启停kafka消费者

kafka中如何实现动态开启 暂停消费者

panying941206的博客 1391

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 845

Kafka consumer

Kafka consumer consumer概览 消费者组 消费者组定义:消费者使用一个消费者组名(即group.id)来标记自己,topic的每条消息都只会被发送到每个订阅它的消费者组的一个消费者实例上 一个consumer group可能有若干个consumer实例 对于同一个group而言,topic的每条消息只能被发送到group下的一个consumer实例上 topic消息可以被发送到多个group中 Kafka同时支持基于队列和基于发布/订阅的两种消息引擎模型,事实上Kafka是通过con

github_38730134的博客 5737

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析

本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。

weixin_28235513的博客 210

3 ATK2(AUTOSAR OS)代码移植-目标硬件及编译环境简介

该部分介绍ATK2代码移植的目标硬件以及编译环境

xiaoduanduansad的博客 718

Kafka之Consumer使用与基本原理

前置内容 Kafka生产者:juejin.cn/post/709417… Kafka Consumer基本概念:juejin.cn/post/709641… Java SDK 基本使用 Consumer就是负责从Kafka集群中消费消息数据的应用程序,自 Kafka 0.9 版本提供了Java版本的Consumer SDK供用户使用, Kafka官方支持的语言SDK较少,更多都是由第三方社区维护的SDK,如果需要使用对应语言的SDK,需要额外下载, 第三方库信息地址:docs.confluent

cainiao1412的博客 9555

Vue - 解决报错 Error: Cannot find module ‘XXX\@vue\cli-service\bin\vue-cli-service.js‘(vue项目编译运行出错,启动失败)

vue报错,Error: Cannot find module ‘@vue\cli-service\bin\vue-cli-service.js‘,vue2项目启动报错,vue3项目运行出错,vue执行npm run serve报错,找不到@vue/cli-service模块,vue项目关于:Error: Cannot find module ‘D:\@vue\cli-service\bin\vue-cli-service.js‘的解决方案,vue项目跑不起来了,Vue项目报错,跑项目报错Cannot fi

🏆 前端领域优质创作者 3114

【Kafka】消费者Consumer详解

一文吃透kafka消费者特性

qq_43745578的博客 3422

S7-1200中OB100和OB20中断使用方法及示例程序说明(图文)

S7-1200中OB100和OB20中断使用方法及示例程序说明(图文)

Robot_PLC_HMI_Automation 8584

【HOJ系列】HOJ判题机部署

【HOJ系列】HOJ判题机部署

随风浪仔的专栏 903

kafka之消费者(Consumer)

kafka的Consumer如何消费消息,看这一篇就够了。

zwl2220943286的博客 3352

(01)ORB-SLAM2源码无死角解析-(38) EPnP 算法原理详解→理论基础二:分情况求得beta初始解

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.youkuaiyun.com/weixin_43013761/article/details/123092196 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证{\color{blue}{文末正下方中心}

江南才尽江南山,年少无知年少狂! 1024

Kafka 基础教程 — consumer端设计

作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。

smart_an的专栏 662

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

新版本 Kafka Consumer 的设计原理

  相对Producer来说,Consumer使用和设计类似,但更为复杂。因此将Consumer相关知识总结一番。顾名思义,consumer就是读取kafka集群中某些topic消息的应用程序。consumer有两个版本,老版本用Scala语言编写,其api包名为kafka.consumer.*, 分别提供high-level和low-level两种API,其缺点是用户必须自行实现错误处理和故障转...

大数据开发实践者 3518

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[Big Data - Kafka] Kafka设计解析(四):Kafka Consumer解析

High Level Consumer 很多时候,客户程序只是希望从Kafka读取数据,不太关心消息offset的处理。同时也希望提供一些语义,例如同一条消息只被某一个Consumer消费(单播)或被所有Consumer消费(广播)。因此,Kafka High Level Consumer提供了一个从Kafka消费数据的高层抽象,从而屏蔽掉其中的细节并提供丰富的语义。 Consumer Gro...

weixin_34221332的博客 141

Kafka Consumer 核心设计原理 | Apache Kafka 官方学习文档

Kafka 消费者是从 Broker 读取并处理事件的客户端应用,向目标分区的主副本 Broker发起拉取请求,通过指定日志偏移量获取对应数据块。消费组是来自同一应用的一组消费者,协同消费一个或多个 Topic 的消息;任意时刻,一个分区在一个消费组内仅被一个消费者消费。消费者偏移量是一个唯一的整数标识,标记消费者在一个分区中下次要读取的下一条消息;偏移量会被周期性持久化到内部 Topic中。Last Committed Offset(最后提交的偏移量)定义:消费者。

寓教于乐。教己助人 501

深入浅出Kafka Consumer源码解析:设计哲学与实现艺术

拉取模型优势消费者控制节奏(对比RabbitMQ的推送模型)支持批量拉取(协同消费设计动态分区分配(多种分配策略可选)会话机制(精确位移控制至少一次/至多一次语义手动/自动提交选择生产建议配置# 关键参数示例通过源码分析可见,Kafka Consumer通过精巧的状态机设计、高效的内存管理和灵活的协调机制,在消息顺序性、消费进度控制和系统弹性之间取得了完美平衡。这些设计对于构建可靠的消息处理系统具有重要参考价值。

weixin_43680337的博客 799

Kafka Consumer设计解析

摘要   本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景。以及未来版本中对High Level Consumer的重新设计–使用Consumer Coordinator解决Split Brain和Herd等问题。 High Level Co

Welcome to ray's blog home page 557

Kafka设计解析(四):Kafka Consumer解析

High Level Consumer 很多时候,客户程序只是希望从Kafka读取数据,不太关心消息offset的处理。同时也希望提供一些语义,例如同一条消息只被某一个Consumer消费(单播)或被所有Consumer消费(广播)。因此,Kafka High Level Consumer提供了一个从Kafka消费数据的高层抽象,从而屏蔽掉其中的细节并提供丰富的语义。 Consumer

liujiayu2的专栏 1202

Kafka设计解析(十三)Kafka消费组(consumer group)

转载自huxihx,原文链接Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少。最近Kafka社区邮件组已经在讨论是否应该正式使用新版本consumer替换老版本,笔者也觉得时机成熟了,于是写下这篇文章讨论并总结一下新版本consumer的些许设计理念,希望能把con...

dlx29376的博客 193

Kafka设计解析(四)- Kafka Consumer设计解析

转载地址:http://www.jasongj.com/2015/08/09/KafkaColumn4/ 摘要   本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景。以及未来版本中对High Level Consumer的重新设计–使用Consu...

青年IT男 99
上一篇: 一些ES使用事项
下一篇: jenkins+webhook区分多项目多环境
別@帕斯卡
博客等级 码龄15年 11粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值