赞
踩
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 支持不同的配置,开启不同的模式。
- # 解压
- tar -zxvf kafka_2.13-3.6.1.tgz -C /opt/software
注意:此文件是 config/kfart 下的配置文件。
- # This configuration file is intended for use in KRaft mode, where
- # Apache ZooKeeper is not present.
- ############################# Server Basics #############################
- # The role of this server. Setting this puts us in KRaft mode
- process.roles=broker,controller
- # The node id associated with this instance's roles
- node.id=1 # 1->node-1;2->node-2;3->node-3(与controller.quorum.voters参数对应)
- # The connect string for the controller quorum
- controller.quorum.voters=1@node-1:9093,2@node-2:9093,3@node-3:9093
- # 不同服务器绑定的端口
- listeners=PLAINTEXT://:9092,CONTROLLER://:9093
- # Name of listener used for communication between brokers.
- inter.broker.listener.name=PLAINTEXT
- # 这里使用对应主机ip (broker 对外暴露的地址)
- advertised.listeners=PLAINTEXT://node-1:9092
- #controller 服务协议别名
- controller.listener.names=CONTROLLER
- # 协议别名到安全协议的映射
- listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
- # 数据保存路径
- log.dirs=log.dirs=/opt/software/kafka3.6.0/datas
- # 1、配置环境变量 vim /etc/profile
- export KAFKA_HOME=/opt/software/kafka3.6.0
- export PATH=$PATH:$KAFKA_HOME/bin
- # 2、激活环境变量
- source /etc/profile
- # 1、首先生成存储目录唯一 ID
- bin/kafka-storage.sh random-uuid
- # 2、用该 ID 格式化 kafka 存储目录 (三台节点都要做)
- bin/kafka-storage.sh format -t J7s9e8PPTKOO47PxzI39VA(上一步生成的uuid) -c /opt/software/kafka3.6.0/config/kraft/server.properties
- #! /bin/bash
- case $1 in
- "start"){
- for i in "node-1" "node-2" "node-3"
- do
- echo " --------启动 $i Kafka-------"
- # kafka 后台启动,使用kraft架构方式
- ssh $i "/opt/software/kafka3.6.0/bin/kafka-server-start.sh -daemon /opt/software/kafka3.6.0/config/config/kraft/server.properties"
- done
- };;
- "stop"){
- for i in "node-1" "node-2" "node-3"
- do
- echo " --------停止 $i Kafka-------"
- ssh $i "/opt/software/kafka3.6.0/bin/kafka-server-stop.sh "
- done
- };;
- esac
为了减少kafka与zookeeper组件通讯消耗,提高性能,目前kafka通过指定不同的配置文件,开启不同的集群架构,目Kraft架构在试验阶段,主流架构依旧使用zookeeper对kafka元数据进行管理,本文详细介绍kraft架构集群搭建。关于使用zookeeper进行kafka集群搭建之前博客参考:https://blog.csdn.net/zwl2220943286/article/details/135350937
本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。