`

Kafka内核理解:消息的收集/消费机制

 
阅读更多

一、Kafka数据收集机制

Kafka集群中由producer负责数据的产生,并发送到对应的TopicProducer通过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相关参数说明:

分享到:
评论

相关推荐

    docker.io/danielqsj/kafka-exporter:v1.7.0

    docker.io/danielqsj/kafka-exporter:v1.7.0

    Kafka技术内幕:图文详解Kafka源码设计与实现+书签.pdf+源码

    《Kafka技术内幕:图文详解Kafka源码设计与实现》是一本深入解析Apache Kafka的专著,旨在帮助读者理解Kafka的核心设计理念、内部机制以及源码实现。这本书结合图文并茂的方式,使得复杂的概念变得更为易懂。同时,...

    kafka-api:Kafka的经纪人

    get /v1/kafka/cluster/:cluster/credentials/:user get /v1/kafka/cluster/:cluster/acls get /v1/kafka/cluster/:cluster/schemas get /v1/kafka/cluster/:cluster/schemas/:schema/versions get /v1/kafka/...

    kafka学习文档

    apache kafka 在数据处理中特删是日志和消息的处理上会有徆多出色的表现.首先弼然推荐的是 kafka 的宏 网 http://kafka.apache.org/。在宏网最值得参考的文章就是 kafka design: ...

    Kafka技术内幕:图文详解Kafka源码设计与实现 PD

    Kafka技术内幕:图文详解Kafka源码设计与实现 PDF 下载 Kafka技术内幕:图文详解Kafka源码设计与实现 PDF 下载

    Python-kafka集群搭建PythonAPI调用Producer和Consumer

    Kafka是一种分布式流处理平台,常用于实时数据处理和消息传递。在本教程中,我们将探讨如何搭建一个支持SASL(Simple Authentication and Security Layer)认证的Kafka集群,并使用Python API来创建Producer和...

    Kafka 消息队列(高清版)深入理解Kafka:核心设计与实践原理.zip

    《Kafka 消息队列(高清版)深入理解Kafka:核心设计与实践原理》是一本详尽探讨Apache Kafka的书籍,旨在帮助读者深入掌握Kafka的核心设计理念和实际操作技巧。Kafka是一个分布式流处理平台,广泛应用于大数据处理...

    kafka-2.3.0-3.x86_64.rpm for centos7

    kafka-2.3.0-3.x86_64.rpm for centos7 Default locations binaries: /opt/kafka data: /var/lib/kafka logs: /var/log/kafka configs: /etc/kafka, /etc/sysconfig/kafka

    指定时间段消费Kafka工具

    消费kafka某时间段消息用于分析问题,生产环境海量数据,用kafka-console-consumer.sh只能消费全量,文件巨大,无法grep。 代码来源于博主:BillowX_ ,感谢分享 原贴地址:...

    深入理解Kafka:核心设计与实践原理_朱忠华著_带目录.rar

    Kafka的核心设计围绕着消息队列的概念,其主要功能包括消息生产、消息存储和消息消费。以下将详细阐述Kafka的一些关键知识点: 1. **消息模型**:Kafka基于发布/订阅模式,生产者负责生成数据并发送到主题(Topic)...

    Kafka技术内幕:图文详解Kafka源码设计与实现 高清带书签

    《Kafka技术内幕:图文详解Kafka源码设计与实现》这本书深入剖析了Apache Kafka这一分布式消息系统的内在机制,旨在帮助读者理解Kafka的核心设计理念,掌握其实现方式,并能运用到实际项目中。以下是该书可能涵盖的...

    Kafka技术内幕:图文详解Kafka源码设计与实现

    7. **源码解析**:书中可能会详细分析Kafka的内部机制,包括分区分配策略、消息的序列化与反序列化、消费者心跳机制、offset管理等,帮助读者深入理解其工作原理。 8. **大数据处理**:Kafka常与大数据处理框架如...

    springboot整合kafka的发布/消费demo项目源码

    在本文中,我们将深入探讨如何将Spring Boot与Apache Kafka整合,以便实现发布/消费消息队列模式。Apache Kafka是一款高效、可扩展且分布式的消息中间件,而Spring Boot则是一个简化了Spring应用程序开发的框架。...

    wurstmeister/kafka.tar

    kafka的docker镜像wurstmeister/kafka,有一段时间docker上老是拉不下来,故存为资源

    Kafka the Definitive Guide 2nd Edition

    * 消费者组管理:Kafka 的消费者组管理机制,用于管理消费者组和消费者。 * 集群元数据管理:Kafka 的集群元数据管理机制,用于管理集群和代理节点。 6. Kafka 的应用 Kafka 的应用包括: * 数据分析平台:Kafka ...

    kafka 解决log4j:ERROR Failed to rename错误解决办法错误的jar包

    log4j:ERROR Failed to rename

    深入剖析Kafka设计原理:如何构建高效的消息系统

    **深入剖析Kafka设计原理:如何构建高效的消息系统** Kafka是一种分布式流处理平台,由LinkedIn开发并贡献给了Apache软件基金会。它最初被设计为一个高吞吐量、低延迟的发布订阅消息系统,现在已经成为大数据领域的...

    linux安装kafka教程

    Linux 安装 Kafka 教程 Kafka 是一种流行的分布式流处理平台,广泛应用于数据处理、实时数据处理和事件驱动...Kafka 安装和配置完成后,可以使用 Kafka 命令行工具进行各种操作,如创建 Topic、发送消息、消费消息等。

    Go-Kafka-gRPC-MongoDB-microservice:Go产品微服务

    Golang Kafka gRPC MongoDB微服务示例 :waving_hand: :man::laptop: 完整列出已使用的内容: -Go中的Kafka图书馆 -gRPC -Web框架 使用fangs进行配置 -Golang的类型安全Redis客户端 记录器 -结构和现场验证 -...

Global site tag (gtag.js) - Google Analytics