1. 解压安装包(下载地址 https://kafka.apache.org/downloads)
cd opt
tar -zxvf kafka_2.13-3.6.0.tgz
2. 配置kafka
在kafka解压目录同一路径下创建
mkdir -p /opt/software/kafka
mkdir -p /opt/software/kafka/zookeeper #zookeeper数据目录
mkdir -p /opt/software/kafka/log #kafka日志
mkdir -p /opt/software/kafka/zookeeper/log #zookeeper日志
3 修改Kafka配置文件config/server.properties,配置以下参数
broker.id=0
listeners= PLAINTEXT://:9092 #监听地址,也是Kafka运行端口
advertised.listeners= PLAINTEXT://:9092 # 跟listeners配置一致就行
log.dirs=/opt/software/kafka/log #日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181
log.retention.hours=240 #设置数据保存10天
4修改zookeeper配置文件 config/zookeeper.properties,配置以下参数
dataDir=/opt/software/kafka/zookeeper #zookeeper数据目录
dataLogDir=/opt/software/kafka/zookeeper/log #zookeeper日志目录
clientPort=2181
maxClientCnxns=100
tickTimes=2000
5 如果需要配置kafka使用认证机制
5.1.Kafka配置文件config/server.properties,配置以下参数
listeners= SASL_PLAINTEXT://:9092 #监听地址,使用SASL认证
advertised.listeners= SASL_PLAINTEXT://:9092 # 跟listeners配置一致就行
zookeeper.set.acl=true
security.inter.broker.protocol=SASL_PLAINTEXT #使用的认证协议
sasl.enabled.mechanisms=PLAIN #SASL机制
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.authorizer.AclAuthorizer #完成身份验证的类
allow.everyone.if.no.acl.found=true #如果没有找到ACL(访问控制列表)配置,则允许任何操作。
super.users=User:admin #需要开启设置超级管理员,设置visitor用户为超级管理员
5.2. zookeeper配置文件 config/zookeeper.properties,配置以下参数
# 安全身份认证
requireClientAuthScheme=sasl
authProvider.0=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
5.3. config目录添加文件server-jaas.conf,文件内容如下
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin@123"
user_admin="admin@123"
user_producer="producer"
user_consumer="consumer";
};
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="admin"
password="admin@123";
};
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin@123";
};
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin@123"
user_admin="admin@123";
};
5.4. bin目录修改kafka-server-start.sh
29行增加内容 -Djava.security.auth.login.config=file:$base_dir/../config/server-jaas.conf
5.5 bin目录修改zookeeper-server-start.sh
29行增加内容 -Djava.security.auth.login.config=file:$base_dir/../config/server-jaas.conf
5.6 bin目录修改kafka-console-consumer.sh
18行增加内容 -Djava.security.auth.login.config=file:$base_dir/../config/server-jaas.conf
5.7 bin目录修改kafka-console-producer.sh
18行增加内容 -Djava.security.auth.login.config=file:$base_dir/../config/server-jaas.conf
6启动和测试:
启动Kafka服务之前先要启动Zookeeper服务。
启动命令:./zookeeper-server-start.sh ../config/zookeeper.properties
运行窗口没自动关闭,没有异常信息则表示正常启动
然后启动Kafka服务。
启动命令:./kafka-server-start.sh ../config/server.properties
运行窗口没自动关闭,没有异常信息则表示正常启动
Kafka服务启动后,可以通过发送和接收消息来测试Kafka是否正常工作。可以使用Kafka自带的命令行工具或编写简单的应用程序来进行测试。