主页 > 新闻资讯 > 大数据学习:Kafka Consumer核心参数概述

大数据学习:Kafka Consumer核心参数概述

作者:张老师 浏览次数: 2021-07-02 16:48
Kafka 作为大数据技术生态当中必学的一个组件,尤其是作为消息队列而言,也是主流选择比较多的一种方案。学习kakfa,Consumer消费者是一个重要的概念,今天的大数据学习分享,我们先来讲讲Kafka Consumer核心参数。

学习Kafka,要想深入了解Kafka Consumer的核心工作机制,从它的核心参数切入,为后续深入了解它的队列负载机制、消息拉取模型、消费模型、位点提交等机制打下基础。

大数据学习:Kafka Consumer核心参数概述

kafka Consumer的核心属性定义在ConsumerConfig中。

1、基础功能参数

group.id
消费组名称。

client.id
客户端标识id,默认为consumer-序号,在实践中建议包含客户端IP,在一个消费组中不能重复。

bootstrap.servers
broker服务端地址列表。

client.dns.lookup

客户端寻找bootstrap地址的方式,支持如下两种方式:

resolve_canonical_bootstrap_servers_only
这种方式,会依据bootstrap.servers提供的主机名(hostname),根据主机上的名称服务返回其IP地址的数组(InetAddress.getAllByName),然后依次获取inetAddress.getCanonicalHostName(),再建立tcp连接。
一个主机可配置多个网卡,如果启用该功能,应该可以有效利用多网卡的优势,降低Broker的网络端负载压力。

use_all_dns_ips
这种方式会直接使用bootstrap.servers中提供的hostname、port创建tcp连接,默认选项。

enable.auto.commit
是否开启自动位点提交,默认为true。

auto.commit.interval.ms
如果开启自动位点提交,位点的提交频率,默认为5s。

partition.assignment.strategy
消费端队列负载算法,默认为按区间平均分配(RangeAssignor),可选值:轮询(RoundRobinAssignor)

auto.offset.reset
重置位点策略,但kafka提交位点时,对应的消息已被删除时采取的恢复策略,默认为latest,可选:earliest、none(会抛出异常)。

key.deserializer
使用的key序列化类

value.deserializer
消息体序列化类

interceptor.classes
消费端拦截器,可以有多个。

check.crcs
在消费端时是否需要校验CRC,默认为true。

2、网络相关参数

send.buffer.bytes
网络通道(TCP)的发送缓存区大小,默认为128K。

receive.buffer.bytes
网络通道(TCP)的接收缓存区大小,默认为32K。

reconnect.backoff.ms
重新建立链接的等待时长,默认为50ms,属于底层网络参数,基本无需关注。

reconnect.backoff.max.ms
重新建立链接的最大等待时长,默认为1s,连续两次对同一个连接建立重连,等待时间会在reconnect.backoff.ms的初始值上成指数级递增,但超过max后,将不再指数级递增。

retry.backoff.ms
重试间隔时间,默认为100ms。

connections.max.idle.ms
连接的最大空闲时间,默认为9s。

request.timeout.ms
请求的超时时间,与Broker端的网络通讯的请求超时时间。

3、核心工作参数

max.poll.records
每一次poll方法调用拉取的最大消息条数,默认为500。

max.poll.interval.ms

两次poll方法调用的最大间隔时间,单位毫秒,默认为5分钟。如果消费端在该间隔内没有发起poll操作,该消费者将被剔除,触发重平衡,将该消费者分配的队列分配给其他消费者。

session.timeout.ms
消费者与broker的心跳超时时间,默认10s,broker在指定时间内没有收到心跳请求,broker端将会将该消费者移出,并触发重平衡。

heartbeat.interval.ms
心跳间隔时间,消费者会以该频率向broker发送心跳,默认为3s,主要是确保session不会失效。

fetch.min.bytes
一次拉取消息最小返回的字节数量,默认为1字节。

fetch.max.bytes

一次拉取消息最大返回的字节数量,默认为1M,如果一个分区的第一批消息大小大于该值也会返回。

max.partition.fetch.bytes
一次拉取每一个分区最大拉取字节数,默认为1M。

fetch.max.wait.ms
fetch等待拉取数据符合fetch.min.bytes的最大等待时间。

metadata.max.age.ms
元数据在客户端的过期时间,过期后客户端会向broker重新拉取最新的元数据,默认为5分钟。

internal.leave.group.on.close
消费者关闭后是否立即离开订阅组,默认为true,即当客户端断开后立即触发重平衡。如果设置为false,则不会立即触发重平衡,而是要等session过期后才会触发。

关于大数据学习,Kafka Consumer核心参数,以上就为大家做了大致的介绍了。Kafka的消费者,是运行机制当中非常重要概念,而后续我们会持续对相关的知识点做讲解。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,课程大纲及学习视频可联系客服获取!
热点排行
推荐文章
立即申请>>