在Kafka配置中,以下是一些重要的参数及其解释:
Broker配置
- broker.id:每个Broker的唯一标识符,集群中每个节点必须不同。
- listeners:监听的协议、IP和端口,生产环境建议配置具体IP。
- log.dirs:数据存储目录,建议使用多块磁盘提升吞吐(逗号分隔多个路径)。
- zookeeper.connect:ZooKeeper集群地址(生产环境建议至少3节点)。
- num.replica.fetchers:副本同步线程数,影响副本同步速度。
- log.retention.hours:数据默认保留时间,例如设置为168小时(7天)。
- log.retention.bytes:按大小删除旧数据,例如设置为1GB。
- log.segment.bytes:单个日志段大小,影响索引频率,例如设置为1GB。
Producer配置
- bootstrap.servers:指定Kafka集群的地址,格式为host:port。
- acks:指定生产者发送消息后需要等待的确认数,可选值为0、1和all。
- retries:消息发送请求失败时的最大重试次数。
- batch.size:多条消息合并发送到同一分区时的长度阈值。
- linger.ms:发送批量消息时的等待时间。
- compression.type:消息数据压缩方式,例如gzip、snappy、lz4。
Consumer配置
- bootstrap.servers:指定Kafka集群的地址,格式为host:port。
- group.id:消费者所属的消费者组。
- auto.offset.reset:消费者在启动时如何处理偏移量,可选值为earliest和latest。
- max.poll.records:每次拉取的最大记录数。
- fetch.max.bytes:每次拉取的最大字节数。
其他重要配置
- max.in.flight.requests.per.connection:每个连接在未接收到上一个请求的响应前可以发送的请求的个数。如果消息需要保证强有序性,这个值需要调整为1。
- security.protocol:安全协议,例如SASL_PLAINTEXT、SSL。
- sasl.mechanism:SASL认证机制,例如SCRAM-SHA-256。
请注意,这些参数的默认值可能会根据Kafka的版本和具体的使用场景有所不同。在生产环境中,建议根据实际需求和性能要求进行调整和优化。