Kafka学习整理六(server.properties配置实践)

时间:2022-12-13 08:44:25

配置实践基于kafka的 0.10.0版本

单机伪集群的配置

第一步:打开config/server.properties 文件,修改broker.id,listeners,port,log.dirs

vi config/server.properties 
broker.id=0
listeners=PLAINTEXT://172.16.49.173:9092
port=9092
log.dirs=kafka-logs
zookeeper.connect=localhost:2181

备注:listeners一定要配置成为IP地址;如果配置为localhost或服务器的hostname,在使用java发送数据时就会抛出异 常:org.apache.kafka.common.errors.TimeoutException: Batch Expired 。因为在没有配置advertised.host.name 的情况下,Kafka并没有像官方文档宣称的那样改为广播我们配置的host.name,而是广播了主机配置的hostname。远端的客户端并没有配置 hosts,所以自然是连接不上这个hostname的

第二步:在kafka目录下创建目录kafka-logs以及kafka-logs-1并设置读写权限,以保证 Kafka 进程能对这两个目录进行读写

mkdir kafka-logs kafka-logs-1
chmod -R 777 kafka-logs kafka-logs-1

第三步:复制server.properties为server1.properties,并修改broker.id,listeners,port,log.dirs

cp config/server.properties  config/server1.properties 
broker.id=1
listeners=PLAINTEXT://172.16.49.173:9093
port=9093
log.dirs=kafka-logs-1
zookeeper.connect=localhost:2181

备注:listeners中的端口号必须与port的值一致

第四步:使用kafka-server-start.sh 和两个server.properties启动两个KafkaServer

bin/kafka-server-start.sh config/server_1.properties &
bin/kafka-server-start.sh config/server.properties &

集群的配置

与单机的配置差不多,只是listeners的配置需要改为集群服务的IP地址和采用的端口。