IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 一文读懂Kafka认证集群搭建 -> 正文阅读

[大数据]一文读懂Kafka认证集群搭建

安装包准备

下载安装包到目标目录,用tar zxvf命令解压

认证配置文件

进入kafka安装包根目录的config文件夹下,创建kafka_server_jaas.confkafka_zoo_jaas.conf两个文件

  • 创建文件 kafka_zoo_jaas.conf
Server{
        org.apache.zookeeper.server.auth.DigestLoginModule required
        username="[YOUR NAME]"
        password="[YOUR PWD]"
        user_[YOUR NAME]="[YOUR PWD]";
};

本段防止有的人不替换[YOUR NAME][YOUR PWD],啊?不会真的有人不换吧,换成自己想起的用户名和密码,例如. [YOUR NAME]=hanmeimei,[YOUR PWD]=123456

Server{
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="hanmeimei"
        password="123456"
        user_hanmeimei="123456";
};
  • 创建文件 kafka_server_jaas.conf
Client{
        org.apache.zookeeper.server.auth.DigestLoginModule required
        username="[YOUR NAME]"
        password="[YOUR PWD]";
};

KafkaServer{
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="[YOUR NAME]"
        password="[YOUR PWD]"
        user_[YOUR NAME]="[YOUR PWD]";
};

这里选用的是org.apache.kafka.common.security.scram.ScramLoginModule加密方式,对应的就是SHA-256,根据需要可以选择其它的加密方式

启动zookeeper

  • 修改配置文件config/zookeeper.properties
# 改成自己想设置的数据存储路径
dataDir=[ZOOKEEPER DATA PATH]
# 改成未占用的端口
clientPort=2185

# 增加加密认证配置
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
zookeeper.sasl.client=true
  • 修改启动文件bin/zookeeper-server-start.sh
# 增加本行
export KAFKA_OPTS=" -Djava.security.auth.login.config=[KAFKA安装路径]/config/kafka_zoo_jaas.conf"

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS org.apache.zookeeper.server.quorum.QuorumPeerMain "$@"
  • 创建zookeeper配置的数据存储路径:mkdir -p [ZOOKEEPER DATA PATH],然后到bin目录下尝试启动
# 启动验证脚本
./zookeeper-server-start.sh ../config/zookeeper.properties
# 上一个验证没问题 ctrl+c 后用这个脚本后台启动运行
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties 1>/dev/null 2>&1 &

启动kafka集群

  • 修改config/server.properties
# 设置0.0.0.0表示绑定所有网卡ip,端口可以自定义,这里用9092做例子
listeners=SASL_PLAINTEXT://0.0.0.0:9092

# 暴露给外部的访问ip端口,例如服务器有内网IP和公网IP,这个就配置公网IP,客户端访问就通过这个来访问
advertised.listeners=SASL_PLAINTEXT://[暴露的IP]:9092

# 增加加密协议配置
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256

# 配置kafka日志路径
log.dirs=/data/kafka/logs

zookeeper.connect=127.0.0.1:2185

上面的advertised.listeners配置很重要,例如我们在云服务器上搭建Kafka集群,如果不配置这个直接通过公网IP+端口是不能正常访问Kafka的,一定要配置这个属性才能正常访问。同理docker环境部署的Kafka也需要这个属性配置

  • [ ]复制两个config/server.properties做集群配置(本教程是单机模拟)
cp config/server.properties config/server-cluster-1.properties
cp config/server.properties config/server-cluster-2.properties
  • 修改配置文件server-cluster-1.properties(只列出了需要修改的部分)
# 单机模拟修改端口为另外一个,日志路径也换了一个
broker.id=1
listeners=SASL_PLAINTEXT://0.0.0.0:9093
advertised.listeners=SASL_PLAINTEXT://[暴露的IP]:9093
log.dirs=/data/kafka/logs-1
  • 修改配置文件server-cluster-2.properties(只列出了需要修改的部分)
# 单机模拟修改端口为另外一个,日志路径也换了一个
broker.id=2
listeners=SASL_PLAINTEXT://0.0.0.0:9094
advertised.listeners=SASL_PLAINTEXT://[暴露的IP]:9094
log.dirs=/data/kafka/logs-2
  • 修改启动脚本bin/kafka-server-start.sh
# 增加本行认证配置
export KAFKA_OPTS=" -Djava.security.auth.login.config=[KAFKA安装路径]/config/kafka_server_jaas.conf"

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
  • 尝试到bin目录下启动kafka集群
# 增加权限认证配置,其中`123456`就是上面设置的密码,`hanmeimei`就是设置的用户名
./kafka-configs.sh --zookeeper 127.0.0.1:2185 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=123456],SCRAM-SHA-512=[password=123456]' --entity-type users --entity-name hanmeimei

# 尝试启动
nohup ./kafka-server-start.sh ../config/server.properties 1>/dev/null 2>&1 &
nohup ./kafka-server-start.sh ../config/server-cluster-1.properties 1>/dev/null 2>&1 &
nohup ./kafka-server-start.sh ../config/server-cluster-2.properties 1>/dev/null 2>&1 &

执行命令ps -ef|grep kafka,发现有4个进程,分别是zookeeper,3个kafka服务说明启动成功

验证

Topic验证

  • 创建Topic
./kafka-topics.sh --create --zookeeper 127.0.0.1:2185 --replication-factor 1 --partitions 1 --topic centerm-cluster-topic

看到打印Created topic centerm-cluster-topic.说明配置正确

生产者验证

  • 修改config/producer.properties
# 修改服务集群地址端口
bootstrap.servers=[暴露IP]:9092,[暴露IP]:9093,[暴露IP]:9094

# 增加认证配置
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="[YOUR NAME]" password="[YOUR PWD]";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
  • 生产消息验证
./kafka-console-producer.sh --bootstrap-server [暴露IP]:9092,[暴露IP]:9093,[暴露IP]:9094 --topic centerm-cluster-topic --producer.config ../config/producer.properties

没有报错,并且出现输入控制台表示配置启动成功了,随便输入一些信息,接着验证消费者

在这里插入图片描述

消费者验证

  • 修改config/consumer.properties
# 修改服务集群地址端口
bootstrap.servers=[暴露IP]:9092,[暴露IP]:9093,[暴露IP]:9094

# 增加认证配置
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="[YOUR NAME]" password="[YOUR PWD]";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
  • 消费消息验证
./kafka-console-consumer.sh --bootstrap-server [暴露IP]:9092,[暴露IP]:9093,[暴露IP]:9094 --topic centerm-cluster-topic --consumer.config ../config/consumer.properties --from-beginning

如果能收到刚刚发送的消息验证成功
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:26:45  更:2021-09-02 11:28:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:02:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码