配置参数

$KAFKA_HOME/config/server.properties⽂件中的配置参数。

zookeeper.connect

该参数⽤于配置Kafka要连接的Zookeeper/集群的地址。

它的值是⼀个字符串,使⽤逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是 host:port 形式的,可以在最后添加Kafka在Zookeeper中的根节点路径。如:

1
zookeeper.connect=node2:2181,node3:2181,node4:2181/myKafka

内外⽹隔离配置


listeners

⽤于指定当前Broker向外发布服务的地址和端⼝,使⽤逗号隔开多个URI及监听器名称,每个监听器必须使⽤不同的⽹络端⼝。

如果监听器名称代表的不是安全协议,必须配置listener.security.protocol.map。

listener.security.protocol.map

监听器名称和安全协议的映射配置。

⽐如,可以将内外⽹隔离,即使它们都使⽤SSL。如:listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL

每个监听器的名称只能在map中出现⼀次。

advertised.listeners

需要将该地址发布到zookeeper供客户端使⽤,如果客户端使⽤的地址与listeners配置不同。

可以在zookeeper的 get /myKafka/brokers/ids/<broker.id> 中找到。

在IaaS环境,该条⽬的⽹络接⼝得与broker绑定的⽹络接⼝不同。

如果不设置此条⽬,就使⽤listeners的配置。跟listeners不同,该条⽬不能使⽤0.0.0.0⽹络端⼝。

advertised.listeners的地址必须是listeners中配置的或配置的⼀部分。

inter.broker.listener.name

⽤于配置broker之间通信使⽤的监听器名称,该名称必须在advertised.listeners列表中。如:inter.broker.listener.name=EXTERNAL

broker.id

该属性⽤于唯⼀标记⼀个Kafka的Broker,它的值是⼀个任意integer值。

当Kafka以分布式集群运⾏的时候,尤为重要。

最好该值跟该Broker所在的物理主机有关的,如主机名为 host1.lagou.com ,则 broker.id=1 ,如果主机名为 192.168.100.101 ,则 broker.id=101 等等。


log.dir

通过该属性的值,指定Kafka在磁盘上保存消息的⽇志⽚段的⽬录。

它是⼀组⽤逗号分隔的本地⽂件系统路径。

如果指定了多个路径,那么broker 会根据“最少使⽤”原则,把同⼀个分区的⽇志⽚段保存到同⼀个路径下。

broker 会往拥有最少数⽬分区的路径新增分区,⽽不是往拥有最⼩磁盘空间的路径新增分区。