Kafka 配置
Kafka 使用属性文件格式的键值对配置文件进行配置。
Broker 配置
必须的配置项:
- broker.id
- log.dirs
- zookeeper.connect
zookeeper.connect
以 hostname.port 的格式指定 ZooKeeper 连接的字符串,
hostname 和 port 分别是 ZooKeeper 服务器的主机名(可以是 IP)和端口。为了当一台 ZooKeeper 服务器宕机后可以连接其他的 ZooKeeper 节点,你可以指定多台主机,使用参数 hostname1:port1,hostname:port2,hostname3:port3。
| 选项 | 说明 | 类型 | 默认 |
| zookeeper.connect | 以 hostname.port 格式指定连接 ZooKeeper 的主机名(IP)和端口。可以指定多台 ZooKeeper 通过 hostname1:port1,hostname2:port2,hostname3:port3 | string | |
| advertised.host.name | 已废弃,仅在 advertised.listeners 或 listeners 未设置时使用。请使用 advertised.listeners 代替。发布 Hostname 到 ZooKeeper 供客户端使用。在 IaaS 环境下,Broker 可能需要绑定不同的接口。如果没有设置,将会使用 host.name(如果有配置)。否则会使用 java.net.InetAddress.getCanonicalHostName() 返回的值。 | string | null |
| advertised.listeners | 如果此参数的配置与 listeners 的配置不同,则将此参数侦听发布到 ZooKeeper 供客户端使用。在 IaaS 环境中,可能需要与代理绑定的接口不同。如果不设置此参数,l将会使用 isteners 的值。 | string | null |
| advertised.port | 已废弃,仅在未设置 advertised.listeners 或 listeners 时生效。新版本中使用 advertised.listeners 代替。此参数设置发布给 ZooKeeper 客户端使用的端口。 | int | null |
| auto.create.topics.enable | 在服务器上开启自动创建 topic 功能 | boolean | true |
| auto.leader.rebalance.enable | 启用自动平衡 leader 功能。通过配置 ‘leader.imbalance.check.interval.seconds’,可让后台线程定期检查分区 leaders 的分布。如果 leaders 不平衡超过 'leader.imbalance.per.broker.percentage',将会触发重新平衡分区。 | boolean | true |
| background.threads | 用于各种后台处理任务的线程数。 | int | 10 |
| brocker.id | 服务器的 broker id。如果未设置,将生成唯一的 broker id。为避免 ZooKeeper 生成的 broker id 与用户配置的 broker id 发生冲突,生成的代理 id 从 reserved.broker.max.id + 1 开始。 | int | -1 |
| compression.type | 指定给定 topic 的最终压缩类型。此配置接受标准的压缩编解码器(‘gzid’,‘snappy’,‘lz4’,‘zstd’)。如果不指定,则表示保留由 producer 设置的原始的压缩编码。 | string | producer |
| delete.topic.enable |
启用删除 topic 功能。如果关闭此功能,则无法通过管理工具删除 topic。 |
boolean | true |
| host.name |
已废弃,只有当 listeners 未设置时生效。使用 linsteners 代替。broker 的主机名,如果使用此设置,将会只绑定到该地址。如果没有设置,将会绑定所有接口地址。 |
string | "" |
| leader.imbalance.check.interval.seconds |
通过 controller 触发分区重新平衡检查的频率。 |
long | 300 |
| leader.imbalance.per.broker.percentage |
每个 broker 允许的 leader 的失衡比率。如果此比率超出了该参数设置的值,则 controller 将触发 leader 平衡。该值以百分比指定。 |
int | 10 |
| listeners |
监听列表 -- 监听逗号分隔的 URL 列表和协议。如果监听名称不是安全协议,listener.security.protocol.map 必须进行设置。 listener 名称和端口号必须唯一。指定 hostname 为 0.0.0.0 则为绑定所有接口。将 hostname 置空则为绑定默认接口。合法的 listener 列表例子: PLAINTEXT://myhost:9092,SSL://:9091 |
string | null |
| log.dir |
保留日志数据的目录(补充 log.dirs 属性) |
string | /tmp/kafka-logs |
| log.dirs |
保留日志数据的目录,如果未设置,则使用 log.dir 的值。 |
string | null |
| log.flush.interval.messages |
将消息刷新磁盘之前,在日志分区上累积的消息数 |
long | 9223372036854775807 |
| log.flush.interval.ms |
刷新到磁盘之前,任何 topic 中的消息在内存中保留的最长时间(以毫秒为单位)。如果未设置,将会使用 log.flush.scheduler.interval.ms 的值。 |
long | null |
| log.flush.offset.checkpoint.interval.ms |
我们更新的持续记录的最后一次刷新的频率,作为日志的恢复点。 |
int | 60000(1min) |
| log.flush.scheduler.interval.ms |
日志刷新以其设置的频率(ms)检查是否有任何日志需要被刷新到i磁盘中 |
long | 9223372036854775807 |
| log.flush.start.offset.checkpoint.interval.ms |
更新日志开始偏移的持久记录的频率 |
int | 60000(1min) |
| log.retention.bytes | 删除日志前最大的日志大小 | long | -1 |
| long.retention.hours | 删除日志文件前保留日志前保留日志的小时数(小时) | int | 168 |

浙公网安备 33010602011771号