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
CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093

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

 

 

  

 

posted @ 2021-01-15 11:32  hengistwu  阅读(367)  评论(0)    收藏  举报