kafka

Kafka-消费者概述

2023-01-28  本文已影响0人  我可能是个假开发

一、消费方式

1.pull( 拉)模式

consumer采用从broker中主动拉取数据。

Kafka采用这种方式。

2.push(推)模式

Kafka没有采用这种方式,因为由broker决定消息发送速率, 很难适应所有消费者的消费速率。 例如推送的速度是50m/s,Consumer1、 Consumer2就来不及处理消息。

pull模式不足之处是, 如果Kafka没有数据, 消费者可能会陷入循环中, 一直返回空数据。


image.png

二、消费者组

Consumer Group 是 Kafka 提供的可扩展且具有容错性的消费者机制。

组内可以有多个消费者或消费者实例(Consumer Instance),它们共享一个公共的 ID,这个 ID 被称为 Group ID。
组内的所有消费者协调在一起来消费订阅主题(Subscribed Topics)的所有分区(Partition)。每个分区只能由同一个消费者组内的一个 Consumer 实例来消费。

Consumer Group三个特性:

当 Consumer Group 订阅了多个主题后,组内的每个实例不要求一定要订阅主题的所有分区,它只会消费部分分区中的消息。

Consumer Group 之间彼此独立,互不影响,它们能够订阅相同的一组主题而互不干涉。再加上 Broker 端的消息留存机制,Kafka 的 Consumer Group 完美地规避了上面提到的伸缩性差的问题。

Kafka 仅仅使用 Consumer Group 这一种机制,却同时实现了传统消息引擎系统的两大模型:

理想情况下,Consumer 实例的数量应该等于该 Group 订阅主题的分区总数。

消费者在消费的过程中需要记录自己消费了多少数据,即消费位置信息。在 Kafka 中,这个位置信息叫位移(Offset)。

三、消费者重要参数

参数名称 描述
bootstrap.servers 向 Kafka 集群建立初始连接用到的 host/port 列表
key.deserializer和value.deserializer 指定接收消息的 key 和 value 的反序列化类型。一定要写全类名。
group.id 标记消费者所属的消费者组
enable.auto.commit 默认值为 true,消费者会自动周期性地向服务器提交偏移量。
auto.commit.interval.ms 如果设置了 enable.auto.commit 的值为 true, 则该值定义了消费者偏移量向 Kafka 提交的频率, 默认 5s
auto.offset.reset 当 Kafka 中没有初始偏移量或当前偏移量在服务器中不存在(如,数据被删除了),该如何处理? earliest:自动重置偏移量到最早的偏移量。 latest: 默认, 自动重置偏移量为最新的偏移量。 none:如果消费组原来的( previous)偏移量不存在,则向消费者抛异常。 anything:向消费者抛异常
offsets.topic.num.partitions _consumer_offsets 的分区数, 默认是 50 个分区
heartbeat.interval.ms Kafka 消费者和 coordinator 之间的心跳时间, 默认 3s。该条目的值必须小于 session.timeout.ms ,也不应该高于session.timeout.ms 的 1/3
session.timeout.ms Kafka 消费者和 coordinator 之间连接超时时间, 默认 45s。超过该值,该消费者被移除,消费者组执行再平衡。
max.poll.interval.ms 消费者处理消息的最大时长, 默认是 5 分钟。超过该值,该消费者被移除,消费者组执行再平衡
fetch.min.bytes 默认 1 个字节。消费者获取服务器端一批消息最小的字节数
fetch.max.wait.ms 默认 500ms。如果没有从服务器端获取到一批数据的最小字节数。该时间到,仍然会返回数据
fetch.max.bytes 默认 Default: 52428800( 50 m)。消费者获取服务器端一批消息最大的字节数。如果服务器端一批次的数据大于该值(50m)仍然可以拉取回来这批数据,因此,这不是一个绝对最大值。一批次的大小受message.max.bytes ( brokerconfig) or max.message.bytes (topic config) 影响。
max.poll.records 一次 poll 拉取数据返回消息的最大条数, 默认是 500 条

极客时间《Kafka 核心技术与实战》学习笔记Day14 - http://gk.link/a/11UOV

上一篇 下一篇

猜你喜欢

热点阅读