CC00038.kafka——|Hadoop&kafka.V23|——|kafka.v23|消费者拦截器参数配置|

一、消费者拦截器参数配置:消费者参数配置补充
配置项说明
bootstrap.servers建立到Kafka集群的初始连接用到的host/port列表。
客户端会使用这里指定的所有的host/port来建立初始连接。
这个配置仅会影响发现集群所有节点的初始连接。
形式:host1:port1,host2:port2...
这个配置中不需要包含集群中所有的节点信息。
最好不要配置一个,以免配置的这个节点宕机的时候连不上。
group.id用于定义当前消费者所属的消费组的唯一字符串。
如果使用了消费组的功能subscribe(topic) ,
或使用了基于Kafka的偏移量管理机制,则应该配置group.id。
auto.commit.interval.ms如果设置了enable.auto.commit 的值为true,
则该值定义了消费者偏移量向Kafka提交的频率。
auto.offset.reset如果Kafka中没有初始偏移量或当前偏移量在服务器中不存在
(比如数据被删掉了):
earliest:自动重置偏移量到最早的偏移量。
latest:自动重置偏移量到最后一个
none:如果没有找到该消费组以前的偏移量没有找到,就抛异常。
其他值:向消费者抛异常。
fetch.min.bytes服务器对每个拉取消息的请求返回的数据量最小值。
如果数据量达不到这个值,请求等待,以让更多的数据累积,
达到这个值之后响应请求。
默认设置是1个字节,表示只要有一个字节的数据,就立即响应请求,
或者在没有数据的时候请求超时。
将该值设置为大一点儿的数字,
会让服务器等待稍微长一点儿的时间以累积数据。
如此则可以提高服务器的吞吐量,代价是额外的延迟时间。
fetch.max.wait.ms如果服务器端的数据量达不到fetch.min.bytes 的话,
服务器端不能立即响应请求。
该时间用于配置服务器端阻塞请求的最大时长。
fetch.max.bytes服务器给单个拉取请求返回的最大数据量。
消费者批量拉取消息,如果第一个非空消息批次的值比该值大,
消息批也会返回,以让消费者可以接着进行。
即该配置并不是绝对的最大值。
broker可以接收的消息批最大值通过message.max.bytes (broker配置)
或max.message.bytes (主题配置)来指定。
需要注意的是,消费者一般会并发拉取请求。
enable.auto.commit如果设置为true,则消费者的偏移量会周期性地在后台提交。
connections.max.idle.ms在这个时间之后关闭空闲的连接。
check.crs自动计算被消费的消息的CRC32校验值。
可以确保在传输过程中或磁盘存储过程中消息没有被破坏。
它会增加额外的负载,在追求极致性能的场合禁用。
exclude.internal.topics是否内部主题应该暴露给消费者。
如果该条目设置为true,则只能先订阅再拉取。
isolation.level控制如何读取事务消息。
如果设置了read_committed ,
消费者的poll()方法只会返回已经提交的事务消息。
如果设置了read_uncommitted (默认值),
消费者的poll方法返回所有的消息,即使是已经取消的事务消息。
非事务消息以上两种情况都返回。
消息总是以偏移量的顺序返回。
read_committed 只能返回到达LSO的消息。
在LSO之后出现的消息只能等待相关的事务提交之后才能看到。
结果, read_committed 模式,如果有为提交的事务,
消费者不能读取到直到HW的消息。
read_committed 的seekToEnd方法返回LSO。
heartbeat.interval.ms当使用消费组的时候,该条目指定消费者向消费者协调器发送心跳的时间间隔。
心跳是为了确保消费者会话的活跃状态,
同时在消费者加入或离开消费组的时候方便进行再平衡。
该条目的值必须小于session.timeout.ms ,
也不应该高于session.timeout.ms 的1/3。
可以将其调整得更小,以控制正常重新平衡的预期时间。
session.timeout.ms当使用Kafka的消费组的时候,
消费者周期性地向broker发送心跳表明自己的存在。
如果经过该超时时间还没有收到消费者的心跳,
则broker将消费者从消费组移除,并启动再平衡。
该值必须在broker配置group.min.session.timeout.ms 和
group.max.session.timeout.ms 之间。
max.poll.records一次调用poll()方法返回的记录最大数量。
max.poll.interval.ms使用消费组的时候调用poll()方法的时间间隔。
该条目指定了消费者调用poll()方法的最大时间间隔。
如果在此时间内消费者没有调用poll()方法,
则broker认为消费者失败,触发再平衡,将分区分配给消费组中其他消费者。
max.partition.fetch.bytes对每个分区,服务器返回的最大数量。消费者按批次拉取数据。
如果非空分区的第一个记录大于这个值,批处理依然可以返回,
以保证消费者可以进行下去。
broker接收批的大小由message.max.bytes (broker参数)
或max.message.bytes (主题参数)指定。fetch.max.bytes 
用于限制消费者单次请求的数据量。
send.buffer.bytes用于TCP发送数据时使用的缓冲大小(SO_SNDBUF),
-1表示使用OS默认的缓冲区大小。
retry.backoff.ms在发生失败的时候如果需要重试,
则该配置表示客户端等待多长时间再发起重试。该时间的存在避免了密集循环。
request.timeout.ms客户端等待服务端响应的最大时间。如果该时间超时,
则客户端要么重新发起请求,要么如果重试耗尽,请求失败。
reconnect.backoff.ms重新连接主机的等待时间。避免了重连的密集循环。
该等待时间应用于该客户端到broker的所有连接。
reconnect.backoff.max.ms重新连接到反复连接失败的broker时要等待的最长时间(以毫秒为单位)。
如果提供此选项,则对于每个连续的连接失败,
每台主机的退避将成倍增加,直至达到此最大值。
在计算退避增量之后,添加20%的随机抖动以避免连接风暴。
receive.buffer.bytesTCP连接接收数据的缓存(SO_RCVBUF)。
-1表示使用操作系统的默认值。
partition.assignment.strategy当使用消费组的时候,分区分配策略的类名。
metrics.sample.window.ms计算指标样本的时间窗口。
metrics.recording.level指标的最高记录级别。
metrics.num.samples用于计算指标而维护的样本数量
interceptor.classes拦截器类的列表。默认没有拦截器拦截器是消费者的拦截器,
该拦截器需要实现org.apache.kafka.clients.consumer.ConsumerInterceptor 接口。
拦截器可用于对消费者接收到的消息进行拦截处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值