$KAFKA_HOME/config/server.properties文件中的配置
1、zookeeper.connect
- 该参数用于配置Kafka要连接的Zookeeper/集群的地址。
- 它的值是一个字符串,使用逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是host:port形式的,可以在最后添加Kafka在Zookeeper中的根节点路径。
如:
zookeeper.connect=192.168.0.101:2181,192.168.0.102:2181,192.168.0.103:2181/myKafka
2、listeners
- 用于指定当前Broker向外发布服务的地址和端口。(kafka内部通信)
- 与advertised.listeners 配合,用于做内外网隔离。
3、内外网隔离配置:
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中配置的或配置的一部分。
4、broker.id
- 该属性用于唯一标记一个Kafka的Broker,它的值是一个任意integer值。
- 当Kafka以分布式集群运行的时候,尤为重要。
- 最好该值跟该Broker所在的物理主机有关的,如主机名为host1.lagou.com ,则broker.id=1 ,如果主机名为192.168.100.101 ,则broker.id=101 等等。
5、log.dir
- 通过该属性的值,指定Kafka在磁盘上保存消息的日志片段的目录。
- 它是一组用逗号分隔的本地文件系统路径。
- 如果指定了多个路径,那么broker 会根据“最少使用”原则,把同一个分区的日志片段保存到同一个路径下。
- broker 会往拥有最少数目分区的路径新增分区,而不是往拥有最小磁盘空间的路径新增分区。