当前位置:   article > 正文

kafka丢弃zookeeper,使用kraft架构_koznak的模式不一样了

koznak的模式不一样了
1、简介

        Kafka 现有架构 元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理 。 而kraft 模式架构(目前在实验阶段)不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理 。

kraft架构的优点:

1)、Kafka 不再依赖外部框架 而是能够独立运行;
2)、controller 管理集群时,不再需要从 zookeeper 中 先读取数据,集群性能上升;
3)、由于不依赖 zookeeper 集群扩展时不再受到 zookeeper 读写能力限制;
4)、controller 不再动态选举,而是由配置文件规定 。这样就可以有针对性的加强 controller 节点的配置,而不是像以前一样无法应对随机 controller 节点的高负载。

目前版本 kafka3.6.1 支持不同的配置,开启不同的模式。

2、Kraft架构集群搭建
2.1、Kafka解压安装
  1. # 解压
  2. tar -zxvf kafka_2.13-3.6.1.tgz -C /opt/software
2.2、Kafka配置详解(/opt/software/kafka3.6.0/config/kraft/server.properties)

注意:此文件是 config/kfart 下的配置文件。

  1. # This configuration file is intended for use in KRaft mode, where
  2. # Apache ZooKeeper is not present.
  3. ############################# Server Basics #############################
  4. # The role of this server. Setting this puts us in KRaft mode
  5. process.roles=broker,controller
  6. # The node id associated with this instance's roles
  7. node.id=1 # 1->node-1;2->node-2;3->node-3(与controller.quorum.voters参数对应)
  8. # The connect string for the controller quorum
  9. controller.quorum.voters=1@node-1:9093,2@node-2:9093,3@node-3:9093
  10. # 不同服务器绑定的端口
  11. listeners=PLAINTEXT://:9092,CONTROLLER://:9093
  12. # Name of listener used for communication between brokers.
  13. inter.broker.listener.name=PLAINTEXT
  14. # 这里使用对应主机ip (broker 对外暴露的地址)
  15. advertised.listeners=PLAINTEXT://node-1:9092
  16. #controller 服务协议别名
  17. controller.listener.names=CONTROLLER
  18. # 协议别名到安全协议的映射
  19. listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
  20. # 数据保存路径
  21. log.dirs=log.dirs=/opt/software/kafka3.6.0/datas
2.3、配置环境变量
  1. # 1、配置环境变量 vim /etc/profile
  2. export KAFKA_HOME=/opt/software/kafka3.6.0
  3. export PATH=$PATH:$KAFKA_HOME/bin
  4. # 2、激活环境变量
  5. source /etc/profile
2.4、初始化集群数据目录
  1. # 1、首先生成存储目录唯一 ID
  2. bin/kafka-storage.sh random-uuid
  3. # 2、用该 ID 格式化 kafka 存储目录 (三台节点都要做)
  4. bin/kafka-storage.sh format -t J7s9e8PPTKOO47PxzI39VA(上一步生成的uuid) -c /opt/software/kafka3.6.0/config/kraft/server.properties
2.5、启动Kafka集群脚本(kraft.sh)
  1. #! /bin/bash
  2. case $1 in
  3. "start"){
  4. for i in "node-1" "node-2" "node-3"
  5. do
  6. echo " --------启动 $i Kafka-------"
  7. # kafka 后台启动,使用kraft架构方式
  8. ssh $i "/opt/software/kafka3.6.0/bin/kafka-server-start.sh -daemon /opt/software/kafka3.6.0/config/config/kraft/server.properties"
  9. done
  10. };;
  11. "stop"){
  12. for i in "node-1" "node-2" "node-3"
  13. do
  14. echo " --------停止 $i Kafka-------"
  15. ssh $i "/opt/software/kafka3.6.0/bin/kafka-server-stop.sh "
  16. done
  17. };;
  18. esac
3、总结

        为了减少kafka与zookeeper组件通讯消耗,提高性能,目前kafka通过指定不同的配置文件,开启不同的集群架构,目Kraft架构在试验阶段,主流架构依旧使用zookeeper对kafka元数据进行管理,本文详细介绍kraft架构集群搭建。关于使用zookeeper进行kafka集群搭建之前博客参考:https://blog.csdn.net/zwl2220943286/article/details/135350937

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/897784
推荐阅读
相关标签
  

闽ICP备14008679号