Kafka 服务器参数配置
$KAFKA_HOME/config/server.properties⽂件中的配置
一、zookeeper.connect
该参数⽤于配置Kafka要连接的Zookeeper/集群的地址。
它的值是⼀个字符串,使⽤逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是host:port形式的,可以在最后添加Kafka在Zookeeper中的根节点路径。
如:
zookeeper.connect=192.168.0.102:2181,192.168.0.103:2181,192.168.0.104:2181/myKafka
二、listeners
⽤于指定当前Broker向外发布服务的地址和端⼝。
与advertised.listeners
配合,⽤于做内外⽹隔离。
内外⽹隔离配置:
-
listener.security.protocol.map
监听器名称和安全协议的映射配置。
⽐如,可以将内外⽹隔离,即使它们都使⽤SSL。
listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
每个监听器的名称只能在map中出现⼀次。
-
inter.broker.listener.name
⽤于配置broker之间通信使⽤的监听器名称,该名称必须在advertised.listeners列表中。
inter.broker.listener.name=EXTERNAL
-
listeners
⽤于配置broker监听的URI以及监听器名称列表,使⽤逗号隔开多个URI及监听器名称。
如果监听器名称代表的不是安全协议,必须配置
listener.security.protocol.map
。每个监听器必须使⽤不同的⽹络端⼝。
-
advertised.listeners
需要将该地址发布到zookeeper供客户端使⽤,如果客户端使⽤的地址与listeners配置不同。
可以在zookeeper的
get /myKafka/brokers/ids/<broker.id>
中找到。在IaaS环境,该条⽬的⽹络接⼝得与broker绑定的⽹络接⼝不同。
如果不设置此条⽬,就使⽤listeners的配置。跟listeners不同,该条⽬不能使⽤0.0.0.0⽹络端⼝。
advertised.listeners的地址必须是listeners中配置的或配置的⼀部分。
典型配置:
三、broker.id
该属性⽤于唯⼀标记⼀个Kafka的Broker,它的值是⼀个任意integer值。
当Kafka以分布式集群运⾏的时候,尤为重要。
最好该值跟该Broker所在的物理主机有关的,如主机名为host1.lagou.com
,则broker.id=1
,如果主机名为192.168.100.101
,则broker.id=101
等等。
四、log.dirs
通过该属性的值,指定Kafka在磁盘上保存消息的⽇志⽚段的⽬录。
它是⼀组⽤逗号分隔的本地⽂件系统路径。
如果指定了多个路径,那么broker 会根据“最少使⽤”原则,把同⼀个分区的⽇志⽚段保存到同⼀个路径下。
broker 会往拥有最少数⽬分区的路径新增分区,⽽不是往拥有最⼩磁盘空间的路径新增分区。