kafka-clients之CommonClientConfigs

CommonClientConfigskafka-clients库中一个包含Kafka通用配置项的类,它定义了Kafka Producer、Consumer、Admin等客户端共享的配置。以下是其中的主要配置项及其含义:

1. bootstrap.servers

  • 类型List<String>
  • 说明 :Kafka集群的地址列表。可以是多个节点的地址,以逗号分隔,如localhost:9092,localhost:9093。客户端通过这些地址连接到Kafka集群。

2. client.id

  • 类型String
  • 说明:客户端ID,用于标识Kafka客户端的名称。Kafka会在日志和监控中记录该ID,帮助运维人员识别是哪个客户端在发送或消费消息。

3. connections.max.idle.ms

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

4. metadata.max.age.ms

  • 类型Long
  • 默认值:300000(5分钟)
  • 说明:客户端缓存元数据(比如分区信息)的最大时间。超过该时间后,客户端会向Kafka集群重新请求元数据。

5. metric.reporters

  • 类型List<String>
  • 说明:配置用于度量报告的类名列表。可以将自定义的度量报告器加入这里,将客户端的度量数据上报到外部系统。

6. metrics.num.samples

  • 类型Integer
  • 默认值:2
  • 说明:Kafka客户端的度量数据的采样数,用于计算度量指标的平均值。

7. metrics.recording.level

  • 类型String
  • 默认值INFO
  • 说明 :控制Kafka客户端的度量记录级别。可选值有INFO(记录核心指标)和DEBUG(记录所有指标,数据量更大)。

8. metrics.sample.window.ms

  • 类型Long
  • 默认值:30000(30秒)
  • 说明:度量数据的时间窗口,用于计算统计数据。客户端会基于此时间窗口对度量数据进行统计分析。

9. receive.buffer.bytes

  • 类型Integer
  • 默认值:65536(64KB)
  • 说明:TCP接收缓冲区的大小。设置较大的缓冲区可以提高网络吞吐量,但会消耗更多内存资源。

10. reconnect.backoff.ms

  • 类型Long
  • 默认值:50
  • 说明:当连接失败时,Kafka客户端尝试重连的初始等待时间。每次连接失败后,等待时间会按指数增长。
  • 规则:org.apache.kafka.common.utils.ExponentialBackoff

11. reconnect.backoff.max.ms

  • 类型Long
  • 默认值:1000
  • 说明:客户端重试连接的最大等待时间。用于限制重连等待时间的增长上限,避免重连间隔过长。

12. request.timeout.ms

  • 类型Integer
  • 默认值:30000(30秒)
  • 说明:客户端请求的超时时间。超过该时间后,如果请求没有响应,客户端会抛出超时异常。

13. retry.backoff.ms

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

14. security.protocol

  • 类型String
  • 默认值PLAINTEXT
  • 说明 :指定客户端与Kafka集群之间的安全协议。常用的协议有PLAINTEXT(无加密)、SSL(SSL加密)、SASL_PLAINTEXT(认证但不加密)和SASL_SSL(认证并加密)。

15. send.buffer.bytes

  • 类型Integer
  • 默认值:131072(128KB)
  • 说明:TCP发送缓冲区的大小。可以通过增大该值来提高发送的吞吐量。

16. socket.connection.setup.timeout.ms

  • 类型Long
  • 默认值:10000(10秒)
  • 说明:建立连接的超时时间,超过该时间后,连接将被关闭。适用于需要快速连接或资源有限的环境。

17. socket.connection.setup.timeout.max.ms

  • 类型Long
  • 默认值:30000(30秒)
  • 说明 :建立连接的最大超时时间,超过此时间则连接失败。与 socket.connection.setup.timeout.ms 配合使用,限制连接的最长等待时间。

18. sasl.mechanism

  • 类型String
  • 默认值GSSAPI
  • 说明 :设置SASL的认证机制,如GSSAPIPLAINSCRAM-SHA-256SCRAM-SHA-512等,配合security.protocol用于认证。

19. ssl.endpoint.identification.algorithm

  • 类型String
  • 默认值https
  • 说明:用于SSL连接的端点识别算法,确保客户端连接的是正确的服务器。设置为空字符串可禁用此验证。

20. ssl.key.password, ssl.keystore.location, ssl.keystore.password

  • 类型String
  • 说明:SSL认证所需的配置项,分别对应SSL私钥密码、Keystore文件位置和Keystore文件密码。

21. ssl.truststore.location, ssl.truststore.password

  • 类型String
  • 说明:SSL连接中信任库的配置项,分别对应Truststore文件位置和Truststore文件密码,用于客户端验证服务器的身份。

这些配置项通常在需要细粒度控制客户端行为时进行调整。

相关推荐
格子软件11 分钟前
2026年分布式GEO代理流量调度:源码级状态机防重挂实战
java·vue.js·人工智能·spring boot·分布式·vue
2301_8011847514 分钟前
kafka-zookeeper
分布式·zookeeper·kafka
Devin~Y1 小时前
抖音级短视频推荐与直播带货平台面试实战:从 Java 微服务到 RAG 智能客服全链路解析
java·spring boot·redis·spring cloud·kafka·agent·rag
大明者省2 小时前
四大模态大模型训练体系全解析(架构+范式+分布式+算力成本·)
笔记·分布式·架构
格子软件3 小时前
2026年分布式GEO代理架构:多租户动态数据源隔离与流控源码解构
java·vue.js·人工智能·分布式·架构·vue·geo
nbsaas-boot3 小时前
微服务架构下的分布式事务解决方案深度对比与实战选型
分布式·微服务·架构
livemetee3 小时前
关于【Kafka高可用配置】
分布式·kafka
TTBIGDATA4 小时前
【Ambari Plus】11.Kafka 安装
大数据·hadoop·分布式·kafka·ambari·hdp·ambari plus
李昊哲小课4 小时前
Ubuntu26.04 搭建 Hadoop3.5.0 完全分布式
大数据·hadoop·分布式·ubuntu·hdfs·mapreduce
newbe365246 小时前
我们如何使用 impeccable 优化前端界面设计与实现稳定性
前端·人工智能·分布式·github·aigc·wpf