最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

kafka的学习之一_带SASL鉴权的集群安装与启动

来源:博客园


(资料图片仅供参考)

kafka的学习之一_带SASL鉴权的集群安装与启动

背景

想开始一段新的里程.可能会比现在累, 可能会需要更多的学习和努力.kafka可能就是其中之一. 自己之前总是畏缩不前. 不想面对很多压力.年龄已经很大了, 必须得向前看继续努力了. 

关于kafka

kafka是linked开源的一套高效持久的消息平台. kafka 是基于弗兰兹·卡夫卡(Franz Kafka) 作者的名字来命令的. “卡夫卡”在捷克语中是“寒鸦”的意思,希伯来语中是"穴鸟"的意思. 跟中国的鸳鸯有一些相似的习性. 善在某种意义上是绝望的表现 -kafka的名言之一. kafka是 LinkedIn 于2010年开发的消息系统现阶段最新版本是 3.5 下载地址为:https://downloads.apache.org/kafka/3.5.0/kafka_2.13-3.5.0.tgz

关于kafka的结构

kafka 早起版本使用zookeeper 进行元数据管理他的主要组件有:1.producer:  消息生产者,发布消息到 kafka 集群的终端或服务。2.broker:  kafka 集群中包含的服务器。3.topic:  每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。4.partition:  partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。5.consumer:  从 kafka 集群中消费消息的终端或服务。6.Consumer group:  high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。7.replica:  partition 的副本,保障 partition 的高可用。8.leader:  replica 中的一个角色, producer 和 consumer 只跟 leader 交互。9.follower:  replica 中的一个角色,从 leader 中复制数据。10.controller:  kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。12.zookeeper:  kafka 通过 zookeeper 来存储集群的 meta 信息。需要注意 kafka 在 3.3.1 的版本时使用 kraft 的一致性协议替换了zookeeper协议. 一方面减少部署复杂度, 另一方面也减少与zookeeper的交换提高很多极端场景的新能. 

机器基本设置

修改机器名 分别修改为 broker1 到broker5修改 hosts文件, 将IP地址和机器名进行对应关系设置. 确保有java 可以直接运行, 有环境变量信息. 在机器上面创建 ssh-keygen然后设置机器可以免密访问ssh-copy-id 便于机器快速分发和处理

3controller+5broker的搭建过程

安装过程注意为了简单, 我这边所有的机器都放到了 /root/kafka_2.13-3.5.0/logs 使用的是 /logs 的目录信息需要注意, 这次准备采用 SASL_PLAINTEXT 的协议进行处理. SASL_PLAINTEXT 使用 Simple Authentication and Security Layer(SASL)协议进行身份验证,并使用PLAINTEXT机制来让Kafka进行网络通讯。这使得用户名和密码在网络上传输时不再以明文形式传输,因此比PLAINTEXT更加安全。注意, 这里仅是有了用户名和密码, 其实并不是很安全, 更安全的有 SSL和SASL_SSL,但是加解密的性能损耗较大设置加密文件:cat > /root/kafka_2.13-3.5.0/config/kafka_server_jaas.conf < /root/kafka_2.13-3.5.0/config/sasl.conf <

修改启动脚本

vim /root/kafka_2.13-3.5.0/bin/kafka-server-start.sh 注意可以修改一下jvm的设置然后进行启动:export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G  -Djava.security.auth.login.config=/root/kafka_2.13-3.5.0/config/kafka_server_jaas.conf "初始化logs目录# 第一步获取uuidtime /root/kafka_2.13-3.5.0/bin/kafka-storage.sh random-uuid# 注意时间功能机器有关系 可能会比较长一些. # 第二步进行初始化:# 注意如果之前设置过需要先清理 rm -rf /logs/ 注意目录跟 server.properties 的设置相关bin/kafka-storage.sh format -t 7ONT3dn3RWWNCZyIwLrEqg  -c config/kraft/server.properties需要注意 五个broker都需要进行设置. # 第三步设置 命令# 比如kafka-topic.sh kafka-cluster.sh kafka-server-start.sh 等文件# 内部增加配置文件export KAFKA_OPTS="-Djava.security.auth.login.config=/root/kafka_2.13-3.5.0/config/kafka_server_jaas.conf"

启动脚本-第一部分

处理一下时间同步for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "echo "nameserver 10.110.1.58" > /etc/resolv.conf "; donefor i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "echo "203.107.6.88 ntp.aliyun.com" >>/etc/hosts "; donefor i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "ntpdate ntp.aliyun.com "; done关闭和启动脚本分别为:for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "cd /root/kafka_2.13-3.5.0 && bin/kafka-server-stop.sh config/kraft/server.properties "; donefor i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "cd /root/kafka_2.13-3.5.0 && bin/kafka-server-start.sh -daemon  config/kraft/server.properties "; done

重新初始化-第二部分

# 关闭for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "cd /root/kafka_2.13-3.5.0 && bin/kafka-server-stop.sh config/kraft/server.properties "; done# 删除for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "rm -rf /logs/ "; done# 初始化for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "cd /root/kafka_2.13-3.5.0 && bin/kafka-storage.sh format -t 7ONT3dn3RWWNCZyIwLrEqg  -c config/kraft/server.properties "; done# 启动for i in {1,2,4,5,6} ; do ssh root@10.110.139.18${i} "cd /root/kafka_2.13-3.5.0 && bin/kafka-server-start.sh -daemon  config/kraft/server.properties "; done

集群查看

# 查看日志tail -f /root/kafka_2.13-3.5.0/logs/kafkaServer.out# 带日志启动cd /root/kafka_2.13-3.5.0 && bin/kafka-server-start.sh   config/kraft/server.properties# 简单查看cd /root/kafka_2.13-3.5.0bin/kafka-topics.sh --list --bootstrap-server 10.110.139.184:9093  --command-config config/sasl.conf查看整个集群bin/kafka-topics.sh --list --bootstrap-server 10.110.139.181:9093,10.110.139.182:9093,10.110.139.184:9093,10.110.139.185:9093,10.110.139.186:9093   --command-config config/sasl.conf

关键词: