kafka部署
本教程将在一台设备上部署3个kafka broker,1个zookeeper组成kafka集群,其中kafka broker分别使用9092
,9093
,9094
端口数据分别存放在/data
目录下的kafka-1
,kafka-2
,kafka-3
目录,zookeeper使用2181端口。
该教程中kafka版本使用kafka_2.11-0.11.0.2
,安全认证使用SASL/PLAIN。
1. 下载与安装
关于下载和安装,可以参考官方文档 quick-start,可以分为如下几点
-
确保已经安装了java 1.8
-
下载与解压
下载kafka_2.11-1.1.0.tgz
解压并将得到的内容放到
/usr/local/kafka
下
2. 配置
配置文件在/usr/local/kafka/config
下,以下所有配置请确保配置中的路径已经存在且有对应的权限
-
修改kafka配置
修改
server.properties
文件的以下几项:# broker id 区别集群中其它broker broker.id=0 # 数据存放路径 log.dirs=/data/kafka-1 # zookeeper地址 zookeeper.connect=localhost:2181 # 数据存活时长 log.retention.hours=2
之后,将
server.properties
重命名为server-1.properties
,然后复制为server-2.properties
、server-3.properties
用户另外两个broker。修改server-2.properties
、server-3.properties
中的broker.id
和log.dirs
以互相区别。 -
修改zookeeper配置
修改
zookeeper.properties
的dataDir=/data/zookeeper
。
3. 配置认证
Kafka uses the Java Authentication and Authorization Service (JAAS) for SASL configuration
配置认证需要三个部分的操作,第一部分创建JAAS配置文件,第二部分修改启动命令加载上述配置文件, 第三部分修改properties文件添加认证方式。
3-1. 创建JAAS配置文件
需要在config
下创建如下三个文件,先看下面三个文件,后面会逐个讲解其中涉及到的用户名和密码。
zoookeeper_jaas.conf
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="cluster"
password="clusterpasswd"
user_kafka="kafkapasswd";
};
kafka_server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="cluster"
password="clusterpasswd"
user_cluster="clusterpasswd"
user_foo="foopasswd"
user_producer="produerpasswd"
user_consumer="consumerpasswd";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafkapasswd";
};
kafka_client_jaas.conf
KafkaClient {
org.apache.kafka.common.security.