kafka-clients之ConsumerConfig

Kafka ConsumerConfig 中的配置项用于定义消费者的行为,如消费方式、偏移管理、组协调等。以下是ConsumerConfig中的关键配置项及其详细说明:

1. bootstrap.servers

  • 类型List<String>
  • 说明:Kafka集群的地址列表,消费者会从这些地址拉取数据,通常设置多个地址以防单个节点故障。

2. group.id

  • 类型String
  • 说明:消费者组的ID。属于同一个组的消费者会协同消费一个或多个分区内的消息,每个消息只会被一个组内的消费者读取。

3. enable.auto.commit

  • 类型Boolean
  • 默认值true
  • 说明:是否自动提交偏移量。如果为true,则消费者会在每次轮询后自动提交当前的偏移量。

4. auto.commit.interval.ms

  • 类型Integer
  • 默认值:5000
  • 说明:自动提交偏移量的时间间隔,单位为毫秒。仅在enable.auto.commit=true时生效。

5. auto.offset.reset

  • 类型String
  • 默认值latest
  • 说明:消费者在无法找到其偏移量时的行为。可选值包括:
    • latest:从最新的数据开始消费(默认)。
    • earliest:从最早的数据开始消费。
    • none:如果没有偏移量,抛出异常。

6. fetch.min.bytes

  • 类型Integer
  • 默认值:1
  • 说明:消费者从服务器拉取数据时的最小字节数,只有达到这个值时,Kafka才会返回数据。提高此值可以减少请求频率,但会增加延迟。

7. fetch.max.wait.ms

  • 类型Integer
  • 默认值:500
  • 说明:消费者等待数据的最大时间。如果没有足够的数据满足fetch.min.bytes,Kafka会等待这个时间后返回数据。

8. max.poll.records

  • 类型Integer
  • 默认值:500
  • 说明:单次轮询中可以拉取的最大消息数。调小此值可以减轻消费者的负担,但会增加拉取频率。

9. session.timeout.ms

  • 类型Integer
  • 默认值:10000
  • 说明:消费者与协调器保持连接的超时时间,如果消费者在该时间内未向协调器发送心跳,协调器会认为该消费者已离开并进行再平衡。

10. heartbeat.interval.ms

  • 类型Integer
  • 默认值:3000
  • 说明:消费者发送心跳的频率。应小于session.timeout.ms,用于维持消费者的活跃状态。

11. max.poll.interval.ms

  • 类型Integer
  • 默认值:300000(5分钟)
  • 说明:消费者两次调用poll方法之间的最大允许时间。如果超时,则消费者会被认为无响应并触发再平衡。

12. isolation.level

  • 类型String
  • 默认值read_uncommitted
  • 说明:控制事务消费的隔离级别。可选值:
    • read_uncommitted:读取所有消息(包括未提交的事务消息)。
    • read_committed:只读取已提交的消息。

13. client.id

  • 类型String
  • 说明:客户端ID,用于在监控和日志中识别客户端。

14. receive.buffer.bytes / send.buffer.bytes

  • 类型Integer
  • 默认值:65536(64KB) / 131072(128KB)
  • 说明:TCP接收和发送缓冲区大小。适当调整这些值可以提高网络吞吐量。

15. max.partition.fetch.bytes

  • 类型Integer
  • 默认值:1048576(1MB)
  • 说明:消费者单次从每个分区拉取的最大数据量。这个值越大,单次拉取的数据就越多。

16. connections.max.idle.ms

  • 类型Long
  • 默认值:540000
  • 说明:客户端与服务器之间连接的最大空闲时间。超过该时间,Kafka会关闭空闲连接以释放资源。

17. request.timeout.ms

  • 类型Integer
  • 默认值:30000(30秒)
  • 说明:消费者请求的超时时间。在该时间内如果没有响应,则消费者会认为请求超时。

18. metrics.recording.level

  • 类型String
  • 默认值INFO
  • 说明:控制消费者的度量记录级别。可选值为INFO(记录核心指标)和DEBUG(记录更多指标)。

19. metric.reporters

  • 类型List<String>
  • 说明:指定度量报告器类的列表,可以将消费者的度量数据导出到外部系统,例如Prometheus或自定义的监控系统。

20. check.crcs

  • 类型Boolean
  • 默认值true
  • 说明:是否验证消息的CRC(校验和)。开启后可以确保消息完整性,但会稍微增加性能开销。

21. interceptor.classes

  • 类型List<String>
  • 说明:拦截器类的列表,允许在消息被消费前或消费后进行拦截和处理,适合监控、改写消息等场景。

22. partition.assignment.strategy

  • 类型List<String>
  • 默认值RangeAssignor
  • 说明:消费者组的分区分配策略。可选值包括:
    • RangeAssignor:按分区范围进行分配。
    • RoundRobinAssignor:轮询分配。
    • StickyAssignor:优先保持消费者分配的稳定性。
    • CooperativeStickyAssignor:部分分配,再平衡时减少中断。适合大数据量的分区。

23. fetch.max.bytes

  • 类型Integer
  • 默认值:52428800(50MB)
  • 说明:消费者单次拉取的最大数据量,用于控制批量处理的数据量上限。

24. reconnect.backoff.ms / reconnect.backoff.max.ms

  • 类型Long
  • 默认值:50 / 1000
  • 说明:客户端连接失败后的重试时间间隔。backoff时间会随着重试次数指数增加,但不会超过reconnect.backoff.max.ms
  • 规则:org.apache.kafka.common.utils.ExponentialBackoff

25. retry.backoff.ms

  • 类型Long
  • 默认值:100
  • 说明:请求失败后的重试间隔时间。客户端会在该时间后进行重试。

这些配置项可以帮助用户精细化控制Kafka消费者的行为,包括消费者组、消息拉取、分区分配、超时设置等。根据需求合理配置,可以优化消费者的性能和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyExcel导出列表

通过easyexcel导出列表数据 根据列表内容自适应宽高。 文件名冲突&#xff0c;修改文件名递增设置。 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version&…

ubuntu下的chattts 学习4:Advanced Usage

源码 import ChatTTS import torch import torchaudiochat ChatTTS.Chat() chat.load(compileFalse) # Set to True for better performance ################################### # Sample a speaker from Gaussian.rand_spk chat.sample_random_speaker() print(rand_spk)…

从 HTML 到 CSS:开启网页样式之旅(七)—— CSS浮动

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;七&#xff09;—— CSS浮动 前言一、浮动的简介1.没有浮动的代码和效果2.加入浮动的代码和效果 二、元素浮动后的特点1. 脱离文档流2.宽高特性&#xff1a;3.共用一行&#xff1a;4.margin 特性&#xff1a;5.区别于行…

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 一、效果展示 **博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a;我的百宝工具箱 二、示例代码 1.1、在自己的小程序中创建组件 1.2、组件…

通过 FRP 实现 P2P 通信:控制端与被控制端配置指南

本文介绍了如何通过 FRP 实现 P2P 通信。FRP&#xff08;Fast Reverse Proxy&#xff09;是一款高效的内网穿透工具&#xff0c;能够帮助用户突破 NAT 和防火墙的限制&#xff0c;将内网服务暴露到公网。通过 P2P 通信方式&#xff0c;FRP 提供了更加高效、低延迟的网络传输方式…

MySQL Explain 指南

MySQL Explain 指南 idselect_typetablepartitionstypepossible_keyskeykeylenrefrowsfilteredExtra 使用 explain 执行 DML 语句时&#xff0c;数据不会发生变化。explain 的结果可能包含多行数据&#xff0c;每行对应一个表。若涉及 union 操作&#xff0c;MySQL 会创建临时表…

如何给 JavaScript 函数添加参数校验?

在 JavaScript 中&#xff0c;对函数参数进行校验是确保代码健壮性和防止错误的重要手段。参数校验不仅能提高代码的可读性&#xff0c;还能帮助捕获潜在的错误。下面&#xff0c;我们将结合实际项目代码示例&#xff0c;讲解如何给 JavaScript 函数添加参数校验。 常见的参数…

php7.4安装pg扩展-contos7

今天接到一个需求&#xff0c;就是需要用thinkphp6链接pg(postgresql)数据库。废话不多说&#xff0c;直接上操作步骤 一、安装依赖 yum install -y sqlite-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-dev…

CentOS7.X 安装RustDesk自建服务器实现远程桌面控制

参照文章CentOS安装RustDesk自建服务器中间总有几个位置出错&#xff0c;经实践做个记录防止遗忘 一 环境&工具准备 1.1 阿里云轻量服务器、Centos7系统、目前最高1.1.11版本rustdesk-server-linux-amd64.zip 1.2 阿里云轻量服务器–安全组–开放端口&#xff1a;TCP(21…

TCP Analysis Flags 之 TCP Spurious Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…

c# 设计模式--抽象工厂模式 (Abstract Factory)

定义 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。抽象工厂模式强调的是对象族的创建&#xff0c;而不是单一对象的创建。 用例写法 假设我们有一个场景&#xff0c;需要根据不同的平…

MySQL 8.0 的主主复制(双向复制)

在 Windows Server 2022 Datacenter 上配置 MySQL 8.0 的主主复制&#xff08;双向复制&#xff09;&#xff0c;步骤与 Linux 类似&#xff0c;但有一些特定的配置和路径需要注意。以下是详细的简化步骤&#xff1a; 1. 使用 root 用户登录 确保你以 root 用户登录到 MySQL …

1. 设计模式的由来

设计模式的灵感来自建筑师亚历山大的“设计套路”&#xff0c;后来被程序员借用&#xff0c;总结出一套“编程武功秘籍”。 20世纪90年代&#xff0c;四位软件工程师&#xff08;被称为“四人帮”&#xff09;——Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides&…

【笔记】Linux中使用到的一些操作

1、查找指定文件并执行删除 find . -name "checkpoint_*_*.pth" -type f -exec rm -f {} \; 2、查看每个文件夹占用空间 du -h --max-depth1 3、移动文件 mv valid.zip ./xg mv 文件 目标位置 4、删除文件夹 rmdir folder rm -r folder # 递归删除文件夹下所有内容…

java如何判断object是基本数据类型还是引用数据类型

如何判断object是基本数据类型还是引用数据类型 ‍ 直接用apache commons下的工具类isPrimitiveOrWrapper即可,没必要造轮子 /*** Returns whether the given {code type} is a primitive or primitive wrapper ({link Boolean}, {link Byte}, {link Character},* {link Shor…

Java线程的interrupt中断、wait-notify/all(源码级分析)

实例方法&#xff1a; interrupt()方法是设置结束阻塞(sleep、wait等)&#xff0c;并且设置中断标记true isInterrupted()判断当前是否中断 静态方法&#xff1a; Thread.interrupted():调用这个方法的线程中断标记位还原为false 那么好&#xff0c;既然上面的方法作用是清…

Burp Suite 实战指南:Proxy 捕获与修改流量、HTTP History 筛选与分析

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

12月第1周AI资讯

阅读时间:3-4min 更新时间:2024.12.2-2024.12.6 目录 OpenAI CEO Sam Altman 预告“12天OpenAI”系列活动 腾讯HunyuanVideo:130亿参数的开源视频生成模型 李飞飞的World Labs发布空间智能技术预览版 中科院联手腾讯打造“AI带货王”AnchorCrafter OpenAI CEO Sam Alt…

服务器带宽与数据安全的重要性与作用

服务器带宽指的是服务器与外部网络通信的能力&#xff0c;即服务器发送和接收数据的速率。带宽越大&#xff0c;服务器在同一时间内能够处理的数据量就越多&#xff0c;数据传输的速度和稳定性也就越高。在数字化时代&#xff0c;企业对于数据的依赖程度日益加深&#xff0c;无…

YoloV8实战:使用Yolo训练Objects365数据集

摘要 预训练模型在提高训练成绩上是非常有效,大家通常使用COCO数据集训练的模型做为预训练模型,在小型数据集做实验发现,使用COCO数据集训练的预训练模型比没有使用预训练模型的得分能高出2%mAP,同时,如果使用Objects365做预训练,能比没有使用预训练的模型高出4%的mAP,…