由于在学习Kafka的过程中发现详细全面的Kafka搭建及Schema Registry搭建资料较少,踩坑较多,所以输出这篇记录我的Kafka搭建过程。
1. 信任认证Kafka搭建
1. 下载安装包
首先第一步下载Kafka对应的安装包, 在 Kafka安装包下载地址 中下载自己需要版本的包,注意下载Binary downloads下的包,不是src包。
本次我是用的是kafka_2.13-2.8.2.tgz,其中2.13为Scala版本,2.8.2才是Kafka的版本。
2. 解压
解压Kafka包到指定目录,我选择的是/usr/local/kafka。
3. Zookeeper
目前装的这个版本的Kafka还是依赖Zookeeper的。
1. 配置
Kafka安装包自带Zookeeper,配置文件位于config/zookeeper.properties。
1 2 3 4 5
| dataDir=/tmp/zookeeper clientPort=2181 maxClientCnxns=60 admin.enableServer=false
|
其中,dataDir为数据目录,主要存储事务日志和快照;
maxClientCnxns为ZooKeeper 服务器与客户端的最大连接数;
admin.enableServer指定是否启用远程 JMX 服务器。
2. 启动
信任认证直接正常脚本启动就好了。
1
| ./zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties >> {日志输出目的地} 2>&1 &
|
4. Kafka
1. 配置
配置文件位于config/server.properties。
信任认证的话:
1
| listeners=PLAINTEXT://{ip}:9092
|
如果zookeeper改了端口记得改对应的。其他按需改就好。
2. 启动
这里也是直接正常脚本读配置启动就好了。
1
| /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties >> {日志输出目的地} 2>&1 &
|
2. 口令认证Kafka搭建
一样的操作在此不做赘述。主要讲配置和启动的不同。
1. Zookeeper
1. 配置
首先添加一个jaas设置用户名密码。
1 2 3 4 5 6 7 8 9 10 11 12
| Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_admin="123456" user_root="123456" ; }; Client { org.apache.zookeeper.server.auth.DigestLoginModule required username="admin" password="123456" ; };
|
在zookeeper.properties中也要加入对应参数。
1 2 3 4
| authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthScheme=sasl jaasLoginRenew=3600000
|
2. 启动
注意,口令认证的话需要export参数,建议直接将这两行写为脚本。
1 2
| export KAFKA_OPTS="-Djava.security.auth.login.config={addr}/zookeeper_jaas.conf" ./zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties >> {日志输出目的地} 2>&1 &
|
2. Kafka
1. 配置
首先添加一个jaas设置用户名密码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| KafkaServer{ org.apache.kafka.common.security.plain.PlainLoginModule required username="root" password="123456" user_root="123456" user_k1="k1123456" user_k2="k2123456" user_k3="k3123456"; }; Client{ org.apache.zookeeper.server.auth.DigestLoginModule required username="root" password="123456"; };
|
在server.properties中也要加入对应参数。
1 2 3 4 5 6
| listeners=SASL_PLAINTEXT://{ip}:9092 advertised.listeners=SASL_PLAINTEXT://{ip}:9092 security.inter.broker.protocol=SASL_PLAINTEXT sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN
|
2. 启动
注意,口令认证的话需要export参数,建议直接将这两行写为脚本。
1 2
| export KAFKA_OPTS="-Djava.security.auth.login.config={addr}/kafka_jaas.conf" /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties >> {日志输出目的地} 2>&1 &
|