提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、安装
- 二、配置 SASL/PLANTEXT
- 1.修改conf/server.properties 配置文件,在最后添加
- 2.添加conf/kafka_server_jaas.conf授权认证文件
- 3.修改bin/kafka-server-start.sh启动脚本
- 4.添加conf/kafka_client_jaas.conf授权认证文件
- 5.修改conf/consumer.properties和conf/producer.properties配置文件
- 6.修改生产者和消费者启动脚本
- 7.添加conf/kafka_zoo_jaas.conf授权认证文件
- 8.修改bin/zookeeper-server-start.sh启动脚本
- 8.启动zookeeper服务
- 9.启动kafka服务
- 10.查询Topic
- 11.创建Topic test
- 12.启动生产者
- 13.启动消费者
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
传送门:kafka官网
下载:wget https://www.apache.org/dyn/closer.cgi?path=/kafka/3.1.0/kafka_2.12-3.1.0.tgz
提示:以下是本篇文章正文内容,下面案例可供参考
一、安装
直接解压:
tar -zxvf kafka_2.12-3.1.0.tgz
cd kafka_2.12-3.1.0
二、配置 SASL/PLANTEXT
1.修改conf/server.properties 配置文件,在最后添加
如下(#中文注释去掉):
# IP地址自行替换
listeners=SASL_PLAINTEXT://192.168.231.128:9092
# 外网可访问需配置
advertised.listeners=SASL_PLAINTEXT://192.168.231.128:9092
# 配置sasl协议啥的,基本上不用改
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
# 设置alc权限
allow.everyone.if.no.acl.found=true
# auto.create.topics.enable=false
# delete.topic.enable=true
# IP自行替换
advertised.host.name=192.168.231.128
super.users=User:admin
# 指定认证机制类 注意:kafka低版本使用 kafka.security.auth.SimpleAclAuthorizer,具体查阅官方文档
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
2.添加conf/kafka_server_jaas.conf授权认证文件
此文件用于设置连接kafka服务的账号密码(KafkaServer)和kafka服务向zookeeper注册的账号密码(KafkaClient),
生产者、消费者连接kafka服务账号密码需和KafkaServer一致。
指定认证类,并设置用户名和密码:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin";
};
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
user_用户名=“密码” 代表:服务账号密码
username=“admin” password=“admin” 代表:集群间通讯使用???
3.修改bin/kafka-server-start.sh启动脚本
如:自行修改为kafka_server_jaas.conf的绝对路径
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_server_jaas.conf"
4.添加conf/kafka_client_jaas.conf授权认证文件
用户生产者和消费者客户端连接kafka时授权认证
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
5.修改conf/consumer.properties和conf/producer.properties配置文件
给生产者和消费者开启sasl连接认证,分别在配置文件任意位置添加:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
6.修改生产者和消费者启动脚本
分别修改bin/kafka-console-consumer.sh和bin/kafka-console-producer.sh脚本,添加连接kafka服务认证文件kafka_client_jaas.conf,自行替换成绝对路径
export KAFKA_HEAP_OPTS="-Xmx512M -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_client_jaas.conf"
7.添加conf/kafka_zoo_jaas.conf授权认证文件
用于客户端kafka注册到zookeeper时的授权认证
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
8.修改bin/zookeeper-server-start.sh启动脚本
配置zookeeper授权认证,kafka_zoo_jaas.conf绝对路径自行修改
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M -Djava.security.auth.login.config=/opt/kafka_2.12-3.1.0/config/kafka_zoo_jaas.conf"
8.启动zookeeper服务
kafka_2.12-3.1.0目录下,执行命令
./bin/zookeeper-server-start.sh config/zookeeper.properties > ./logs/zookeeper-server.log 2>&1 &
# 查看日志
tail -500f logs/zookeeper-server.log
9.启动kafka服务
kafka_2.12-3.1.0目录下,执行命令
./bin/kafka-server-start.sh config/server.properties > logs/kafka-server.log 2>&1 &
# 查看日志
tail -500f logs/kafka-server.log
没意外的话,配置基本完成。接下来就是测试了
10.查询Topic
kafka_2.12-3.1.0目录下,执行命令
# 查询topic列表 旧版本 依赖zookeeper
./bin/kafka-topics.sh --zookeeper 192.168.231.128:2181 --list
# 查询topic列表(支持0.9版本+)新版本查topic不依赖zookeeper
./bin/kafka-topics.sh --list --bootstrap-server 192.168.231.128:9092
11.创建Topic test
kafka_2.12-3.1.0目录下,执行命令
./bin/kafka-topics.sh --create --bootstrap-server 192.168.231.128:9092 --replication-factor 1 --partitions 1 --topic test
12.启动生产者
kafka_2.12-3.1.0目录下,执行命令:
# 据说--broker-list已被废弃,由--bootstrap-server代替
./bin/kafka-console-producer.sh --broker-list 192.168.231.128:9092 --topic test --producer.config config/producer.properties
所以咱们可以用新的:
./bin/kafka-console-producer.sh --bootstrap-server 192.168.231.128:9092 --topic test --producer.config config/producer.properties
13.启动消费者
kafka_2.12-3.1.0目录下,执行命令:
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.231.128:9092 --topic test --from-beginning --consumer.config config/consumer.properties
消费者可以接收到生产者发送的消息。
下集,kafka可视化搭建。。。
总结
哎,太tm折腾了,对新手相对没那么友好,创作不易,描述有错请多多包涵~键盘下留情。。。
参考文章:
老哥写得不错:https://blog.csdn.net/qq_36389344/article/details/107233992