这些是 Apache Kafka 和相关流处理框架(如 Flink)的配置参数,详细解释每个参数的含义:
Kafka 消费者配置
Properties.max.poll.records=500
· 单次 poll 调用返回的最大记录数 · 控制每次从服务器获取的消息批量大小
Properties.fetch.max.bytes=52428800
· 每次 fetch 请求获取数据的最大字节数(50MB) · 服务器返回数据的总体大小限制
Properties.max.partition.fetch.bytes=1048576
· 每个分区返回数据的最大字节数(1MB) · 控制单个分区单次获取的数据量
Properties.enable.auto.commit=true
· 是否自动提交消费位移 · true 表示自动提交,false 需要手动提交
启动和消费配置
scan.startup.mode=latest-offset
· 消费者启动时的初始位置策略 · latest-offset:从最新偏移量开始消费(只消费新消息)
Kafka 生产者配置
properties.ack=1
· 消息确认机制 · 1:只需领导者副本确认即可(平衡可靠性和性能)
sink.partitioner=default
· 消息分区策略 · default:使用默认分区器(通常基于 key 的哈希值)
sink.delivery-guarantee=at-least-once
· 消息交付保证 · at-least-once:至少一次交付(可能重复,不会丢失)
数据格式配置
format=json
· 数据序列化格式为 JSON
json.timestamp-format.standard=sql
· 时间戳格式遵循 SQL 标准 · 格式:YYYY-MM-DD HH:MM:SS[.fffffffff]
json.ignore-error=false
· 是否忽略 JSON 解析错误 · false:遇到解析错误会抛出异常
json.encode.decimal-as-plain-number=false
· 小数编码方式 · false:可能使用字符串或其他格式编码小数
json.map-null-key.mode=fail
· 处理 Map 中 null 键的策略 · fail:遇到 null 键时抛出异常
这些配置组合起来定义了一个:
· 从最新位置开始消费 · 使用 JSON 格式 · 提供至少一次交付保证 · 具有严格错误处理的 Kafka 数据流处理作业。