配置实践基于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地址和采用的端口。