前言 在上一篇 Kafka使用Java实现数据的生产和消费demo 中介绍如何简单的使用kafka进行数据传输.本篇则重点介绍kafka中的 consumer 消费者的讲解. 应用场景 在上一篇kafka的consumer消费者,我们使用的是自动提交offset下标. 但是offset下标自动提交其实在很多场景都不适用,因为自动提交是在kafka拉取到数据之后就直接提交,这样很容易丢失数据,尤其是在需要事物控制的时候. 很多情况下我们需要从kafka成功拉取数据之后,对数据进行相应的处理之后再进…
kafka采用Consumer消费者Pull主动拉取数据的方式,当Broker无数据时,消费者空转.Kafka并不删除已消费的消息,各自独立的消费者可消费同一个Broker分区数据. 消费流程 1.消费者发起网络消费请求 # 每批次最小抓取设置(推荐1字节) fetch.min.bytes # 每批次最大抓取大小设置(推荐500ms) fetch.max.bytes # 未达到大小的超时设置(推荐50M) fetch.max.wait.ms 2.拉取数据到内存消费队列中 # 单次拉取最大消息条数…
1.目标 在我们的上一篇文章中,我们讨论了Kafka Producer.今天,我们将讨论Kafka Consumer.首先,我们将看到什么是Kafka Consumer和Kafka Consumer的例子.之后,我们将学习Kafka Consumer Group.此外,我们将看到Kafka Consumer的消费者记录API和配置设置.创建Kafka Producer后,将消息发送到Apache Kafka集群.现在,我们正在创建一个Kafka Consumer来使用来自Kafka集群的消息.所…
温馨提示:整个 Kafka 专栏基于 kafka-2.2.1 版本. 1.KafkaConsumer 概述 根据 KafkaConsumer 类上的注释上来看 KafkaConsumer 具有如下特征: 在 Kafka 中 KafkaConsumer 是线程不安全的. 2.2.1 版本的KafkaConsumer 兼容 kafka 0.10.0 和 0.11.0 等低版本. 消息偏移量与消费偏移量(消息消费进度) Kafka 为分区中的每一条消息维护一个偏移量,即消息偏移量.这个偏移量充当该分区…
Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) High Level Consumer API:高度抽象的Kafka消费者API:将底层具体获取数据.更新offset.设置偏移量等操作屏蔽掉,直接将操作数据流的处理工作提供给编写程序的人员.优点是:操作简单:缺点:可操作性太差,无法按照自己的业务场景选择处理方式.(入口类:ConsumerConne…
Producer API org.apache.kafka.clients.producer.KafkaProducer props.put("bootstrap.servers", "192.168.1.128:9092"); props.put("acks", "all"); props.put("retries", 0); props.put("batch.size", 16384…
1.  前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了,生产者将消息投递到哪个分区?消费者组中的消费者实例之间是怎么分配分区的呢?接下来,就围绕着这两个问题一探究竟. 2.  主题的分区数设置 在server.properties配置文件中可以指定一个全局的分区数设置,这是对每个主题下的分区数的默认设置,默认是1. 当然每个主题也可以自己设置分区数量,如…
这篇博文讲解Kafka 的生产者和消费者实例. 基础版本一 生产者 ProducerFastStart.java package com.xingyun.tutorial_1; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import java.util.Properties; public class Produc…
Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) High Level Consumer API:高度抽象的Kafka消费者API:将底层具体获取数据.更新offset.设置偏移量等操作屏蔽掉,直接将操作数据流的处理工作提供给编写程序的人员.优点是:操作简单:缺点:可操作性太差,无法按照自己的业务场景选择处理方式.(入口类:ConsumerConne…
从0.9.0.0开始,下面是消费者的配置. 名称 描述 类型 默认值 bootstrap.servers 消费者初始连接kafka集群时的地址列表.不管这边配置的什么地址,消费者会使用所有的kafka集群服务器.消费者会通过这些地址列表,找到所有的kafka集群机器. list key.deserializer 实现了Deserializer的key的反序列化类 class value.deserializer 实现了Deserializer的value的反序列化类 class fetch.mi…