kafka 消费者相关参数

1.enable.auto.commit

ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG = "enable.auto.commit";

是否自动提交,默认是true,通常为了保证消费的数据不异常,设置成false。设置false时,配合max.poll.interval.ms参数,根据自身消费者处理消息的能力,进行设值,消费消息后手动提交。

2.max.poll.interval.ms

ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG = "max.poll.interval.ms";

使用消费者组管理时调用poll()之间的最大延迟。这为消费者在获取更多记录之前可以空闲的时间设置了一个上限。如果在超时之前没有调用poll(),则认为消费者失败,组将重新平衡,以便将分区重新分配给另一个成员。根据自身消费消息的能力设值,默认值30*1000ms。

3.max.poll.records

ConsumerConfig.MAX_POLL_RECORDS_CONFIG = "max.poll.records";

在一次调用poll()中返回的最大记录数,默认值为500。根据自身业务消费消息能力设值,不要超过max.poll.interval.ms时间内最大处理消息个数。

4.auto.commit.interval.ms

ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG = "auto.commit.interval.ms";

如果enable.auto.commit设置为true,消费者偏移量自动提交到Kafka的频率(单位为毫秒),默认值5000ms。

5.session.timeout.ms

ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG = "session.timeout.ms";

当使用Kafka的组管理功能时,用来检测消费者故障的超时。使用者定期向代理发送心跳以指示其活动状态。如果在此会话超时到期之前代理没有接收到心跳,则代理将从组中删除此消费者并启动重新平衡。该值必须在group.min.session.timeout.ms和group.max.session.timeout.ms在代理配置中配置的允许范围内。默认值10*1000ms(单位为毫秒)。

6.heartbeat.interval.ms

ConsumerConfig.HEARTBEAT_INTERVAL_MS_CONFIG = "heartbeat.interval.ms";

使用Kafka的组管理工具时,从心跳到消费者协调器之间的预期时间。心跳用于确保消费者会话保持活跃,并在新消费者加入或离开组时促进重新平衡。该值必须小于session.timeout。但通常不应设置为高于该值的1/3。它可以被调整得更低,以控制正常再平衡的预期时间。默认值3*1000ms(单位为毫秒)。

7.auto.offset.reset

ConsumerConfig.AUTO_OFFSET_RESET_CONFIG = "auto.offset.reset";

参数为"latest"表示从分区末尾开始消费消息,参数为"earliest"表示从起始处开始消费消息。默认值是latest。

8.max.partition.fetch.bytes

ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG = "max.partition.fetch.bytes";

从每个分区里返回给Consumer的最大数据量,默认值为1048576(B),即1MB。此参数要配合broker的max.message.size设置,如果设置的比max.message.size小,那么消费者就可能无法正常读取到消息,比如broker能够读取到了2M的数据,但是消费者最大只能接受1M,就会有问题。

9.fetch.min.bytes

ConsumerConfig.FETCH_MIN_BYTES_CONFIG = "fetch.min.bytes";

服务器为获取请求应返回的最小数据量。如果可用数据不足,则请求将等待足够多的数据积累后再响应请求。默认设置为1字节意味着只要有一个字节的数据可用,或者读取请求就会超时等待数据到达。将该值设置为大于1的值将导致服务器等待更大量的数据积累,这可以以一些额外的延迟为代价提高服务器吞吐量。默认值为1(B)。

10.fetch.max.bytes

ConsumerConfig.FETCH_MAX_BYTES_CONFIG = "fetch.max.bytes";

服务器应为获取请求返回的最大数据量,这不是绝对的最大值,如果获取的第一个非空分区中的第一条消息大于此值,则仍将返回该消息以确保使用者能够取得进展。broker接受的最大消息大小是通过message.max.bytes(broker配置)或max.message.bytes(topic配置)定义的。请注意,消费者并行执行多个fetches。默认值为52428800(B),也就是50MB。

11.fetch.max.wait.ms

ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG = "fetch.max.wait.ms";

如果没有足够的数据来立即满足fetch.min.bytes给出的要求,服务器在响应获取请求之前阻塞的最大时间。默认值:500ms(毫秒)。

12.request.timeout.ms

ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG = "request.timeout.ms";

配置控制客户端等待请求响应的最大时间。如果在超时之前没有收到响应,客户端将在必要时重新发送请求,或者在重试次数用尽时失败请求。默认值为30*1000(毫秒)。

注意:以上参数是kafka1.0.2版本。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kafka消费者配置参数包括了一些关键的参数,这些参数可以通过构建Properties对象来设置。在实际的Kafka开发中,我们可以根据需要来调整这些参数以优化和提高消费效率。 其中,fetch.min.bytes参数用于指定Consumer在一次拉取请求中能从Kafka中拉取的最小数据量,默认值为1字节。当Kafka收到Consumer的拉取请求时,如果返回给Consumer的数据量小于这个设置,那么就会等待,直到数据量达到配置的大小。通过调整这个参数的值,我们可以在提高吞吐量的同时,也可能会增加一定的延迟。 fetch.max.wait.ms参数用于指定Kafka的等待时间,默认值为500毫秒。如果Kafka中没有足够多的消息满足fetch.min.bytes参数的要求,那么Consumer会等待这个时间,直到满足要求或超时。调整这个参数的值可以对延迟敏感的业务应用进行优化,适当减小等待时间。 除了以上两个参数,还有其他一些常用的消费者配置参数,比如bootstrap.servers用于指定Kafka集群的地址、key.deserializer和value.deserializer用于指定键和值的反序列化类等等。根据实际需求,我们可以根据需要来设置这些配置参数,以实现最佳的消费者效果。 总结起来,Kafka消费者配置参数包括了一系列的选项,我们可以根据实际需求来调整这些参数以优化消费效率。常用的参数包括fetch.min.bytes和fetch.max.wait.ms,它们分别用于指定一次拉取请求中的最小数据量和等待时间。在设置这些参数时,需要权衡吞吐量和延迟的关系,以满足业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值