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文件密码,用于客户端验证服务器的身份。

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

相关推荐
2501_9418779814 小时前
Python在微服务高并发异步日志聚合与智能告警分析架构中的实践
kafka
SuperHeroWu717 小时前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.17 小时前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生
最笨的羊羊18 小时前
Flink CDC系列之:Kafka CSV 序列化器CsvSerializationSchema
kafka·csv·schema·flink cdc系列·serialization·序列化器
最笨的羊羊19 小时前
Flink CDC系列之:Kafka的Debezium JSON 结构定义类DebeziumJsonStruct
kafka·debezium·flink cdc系列·debezium json·结构定义类·jsonstruct
m***l11520 小时前
集成RabbitMQ+MQ常用操作
分布式·rabbitmq
拾忆,想起21 小时前
Dubbo分组(Group)使用指南:实现服务接口的多版本管理与环境隔离
分布式·微服务·性能优化·架构·dubbo
回家路上绕了弯1 天前
彻底解决超卖问题:从单体到分布式的全场景技术方案
分布式·后端
拾忆,想起1 天前
Dubbo动态配置实时生效全攻略:零停机实现配置热更新
分布式·微服务·性能优化·架构·dubbo
每天进步一点_JL2 天前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端