Kafka内核理解:消息的收集/消费机制
一、Kafka数据收集机制
Kafka集群中由producer负责数据的产生,并发送到对应的Topic;Producer通过push的方式将数据发送到对应Topic的分区
Producer发送到Topic的数据是有key/value键值对组成的,Kafka根据key的不同的值决定数据发送到不同的Partition,默认采用Hash的机制发送数据到对应Topic的不同Partition中,配置参数为{partitioner.class}
Producer发送数据的方式分为sync(同步)和async(异步)两种,默认为同步方式,由参数{producer.type}决定;当为异步发送模式的时候Producer提供重试机制,默认失败重试发送3次
Kafka Producer相关参数:
二、Kafka数据消费机制
Kafka有两种模式消费数据:队列和发布订阅;在队列模式下,一条数据只会发送给customer group中的一个customer进行消费;在发布订阅模式下,一条数据会发送给多个customer进行消费
Kafka的Customer基于offset对kafka中的数据进行消费,对于一个customer group中的所有customer共享一个offset偏移量
Kafka中通过控制Customer的参数{group.id}来决定kafka是什么数据消费模式,如果所有消费者的该参数值是相同的,那么此时的kafka就是类似于队列模式,数据只会发送到一个customer,此时Kafka类似于负载均衡;否则就是发布订阅模式; 在队列模式下,可能会触发Kafka的Consumer Rebalance
Kafka的数据是按照分区进行排序的(插入的顺序),也就是每个分区中的数据是有序的。在Consumer进行数据消费的时候,也是对分区的数据进行有序的消费的,但是不保证所有数据的有序性(多个分区之间)
Consumer Rebalance:当一个consumer group组中的消费者数量和对应Topic的分区数量一致的时候,此时一个Consumer消费一个Partition的数据;如果不一致,那么可能出现一个Consumer消费多个Partition的数据或者不消费数据的情况,这个机制是根据Consumer和Partition的数量动态变化的
Consumer通过poll的方式主动从Kafka集群中获取数据
Kafka Consumer相关参数说明:
转载于:https://www.cnblogs.com/daochong/p/6425762.html
Kafka内核理解:消息的收集/消费机制相关推荐
- input hidden的值存储在哪儿_kafka内核:消息存储模块的工作机制
Medium网站:How Kafka's Storage Internals Work 本篇文章介绍kafka消息存储机制: 首先提出以下问题: 一个partition为什么被分割为多个segment ...
- KAFKA 集成 SpringBoot2 消息发送和消费消息(基础篇)
文章目录 1. 技术选型 2. 导入依赖 3. kafka配置 4. 生产者(同步) 5. 生产者(异步) 6. 消费者 1. 技术选型 软件/框架 版本 jdk 1.8.0_202 springbo ...
- kafka session.timeout.ms 是指消费一条数据的时间?_干货 | Kafka 内核知识梳理,附思维导图...
前面我们已经分享过几篇Kafka的文章,最近简单梳理了下Kafka内核相关的知识,涵盖了Kafka架构总结,副本机制,控制器,高水位机制,日志或消息存储,消息发送与消费机制等方面知识.文末含对应的Ka ...
- kafka session.timeout.ms 是指消费一条数据的时间?_阿里工程师分享:浅谈分布式发布订阅消息系统Kafka...
Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngi ...
- kafka消费并导出_如何使用Docker内的Kafka服务?消息服务测试实践篇
背景及系统简介: Kafka是一种高吞吐量的分布式架构的发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据.通常由于高吞吐量的要求而选择通过处理日志数据和日志聚合来解决. 本文涉及的分布式系统 ...
- kafka Java客户端之 consumer API 消费消息
背景:我使用docker-compose 搭建的kafka服务 kafka的简单介绍以及docker-compose部署单主机Kafka集群 使用consumer API消费指定Topic里面的消息 ...
- mq补偿机制java代码_RocketMQ源码分析之消息消费机制-消费端消息负载均衡机制与重新分布 - Java 技术驿站-Java 技术驿站...
1.消息消费需要解决的问题 首先再次重复啰嗦一下RocketMQ消息消费的一些基本元素的关系 主题 ---> 消息队列(MessageQueue) 1 对多 主题 ----> 消息生产者, ...
- kafka:消息发送以及消费的过程
摘要 kafka的存储消息,生产者发送消息,消费者消费消息.这些看起来简单,但实际细想,会有很多问题需要解决:消息是单个单个发送还是批量发送?broker的主题里一有消息就立即推送给消费者吗?生产者的 ...
- Kafka实现消息生产和消费
文章目录 一.Kafka测试消息生产与消费 二.Java程序进行Kafka收发消息 1.消息生产者 2.消息消费者 一.Kafka测试消息生产与消费 # 首先创建一个主题 [root@192 kafk ...
最新文章
- 用子函数的方法求一个3*4的数组的转置数组
- Python学习之使用Python生成PDF报告
- java 待在原页面 代码_现在java后台,只要修改一点点代码,前段页面就报500,必须重新登录才行?...
- java多态调用优先级_关于java的多态方法调用顺序的问题
- 《那些年啊,那些事——一个程序员的奋斗史》——39
- oracle日志分析产品,鼎甲技术应用:Oracle日志分析 之事务级精准恢复
- VTK:PolyData之ContoursToSurface
- ElasticSearch,docker 安装ElasticSearch,Springboot 使用 ElasticSearch JavaAPI
- 大剑无锋之简单介绍一下虚拟内存【面试推荐】
- jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
- 一步怎么测量图片_测量不容易?15套测量仪器实操手册+自动计算表格,自学也可以...
- 【BIOS来电重启】Restore AC Power Loss
- 曾在美国生产的苹果电脑,如今却败得一塌糊涂
- 二叉树的创建及各种遍历
- 看高手都是运用的灵活自如,打算从今天开始学习他!
- bzoj1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
- 基于SSM的在线课程学习系统
- iOS 4 Background Audio
- python queue的用法_PYTHON多进程用法之四(Queue)
- 常用计算机英文缩写,常用计算机英文缩写含义