Broker Configs
配置文件config/server.properties
属性 | 描述 | 类型 | 默认值 |
---|---|---|---|
broker.id | 每一个broker在集群中的唯一表示,要求是正数 | int | -1 |
zookeeper.connect | 指定zk连接,[hostname:port]以逗号分隔 | string | |
advertised.listeners | 若没配置就就使用listeners的配置通告给消息的生产者和消费者,这个过程是在生产者和消费者获取源数据(metadata)。格式:PLAINTEXT://your.host.name:9092,可选的值有PLAINTEXT和SSL | string | null |
auto.create.topics.enable | 是否允许自动创建topic,若是false,就需要通过命令创建topic | boolean | true |
auto.leader.rebalance.enable | 是否自动平衡broker之间的分配策略 | boolean | true |
delete.topic.enable | 是否开启topic可以被删除 | boolean | false |
listeners | listeners = PLAINTEXT://your.host.name:9092 | string | null |
log.dirs | kafka持久化数据存储的路径,可以指定多个,以逗号分隔 | string | null |
message.max.bytes | server能接收的消息体最大大小,单位是字节,消费端的最大拉取大小需要略大于该值 | int | 1000012 |
min.insync.replicas | 当 ack=”all” 或 -1 时,指定最小确认成功的副本数,如果没满足,producer会抛出 NotEnoughReplicas or NotEnoughReplicasAfterAppend 异常 | int | 1 |
num.io.threads | broker处理磁盘IO的线程数,数值应该大于你的硬盘数 | int | 8 |
num.network.threads | broker处理消息的最大线程数 | int | 3 |
num.replica.fetchers | 从source broker进行复制的线程数,增大这个数值会增加follower的IO | int | 1 |
queued.max.requests | 等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个数值,那么会停止接受外部消息,应该是一种自我保护机制。 | int | 500 |
request.timeout.ms | 从发送请求到收到ACK确认等待的最长时间(超时时间) | int | 30000 |
socket.receive.buffer.bytes | socket的接受缓冲区,socket的调优参数SO_RCVBUFF | int | 102400 |
socket.request.max.bytes | socket请求的最大数值,防止serverOOM,message.max.bytes必然要小于socket.request.max.bytes,会被topic创建时的指定参数覆盖 | int | 104857600 |
socket.send.buffer.bytes | socket的发送缓冲区,socket的调优参数SO_SNDBUFF | int | 102400 |
zookeeper.connection.timeout.ms | ZooKeeper的连接超时时间 | int | null |
zookeeper.session.timeout.ms | ZooKeeper的最大超时时间,就是心跳的间隔,若是没有反映,那么认为已经死了,不宜过大 | int | 6000 |
connections.max.idle.ms | 空闲连接超时,超时则关闭 | long | 600000 |
其余参数(注:以下均为默认值)
# zk follower落后于zk leader的最长时间
zookeeper.sync.time.ms=2000
# metrics系统维护可配置的样本数量,在一个可修正的window size。这项配置配置了窗口大小,例如。我们可能在30s的期间维护两个样本。当一个窗口推出后,我们会擦除并重写最老的窗口
metrics.sample.window.ms=30000
# 用于维护metrics的样本数
metrics.num.samples=2
# 类的列表,用于衡量指标。实现MetricReporter接口,将允许增加一些类,这些类在新的衡量指标产生时就会改变。JmxReporter总会包含用于注册JMX统计
metric.reporters=[]
# broker id最大值
reserved