Kafka 集群 KRaft 模式搭建

2024-06-02 22:28
文章标签 集群 模式 搭建 kafka kraft

本文主要是介绍Kafka 集群 KRaft 模式搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Kafka 集群 KRaft 介绍

KafkaKRaft模式是一种新的元数据管理方式,旨在去除对ZooKeeper的依赖,使Kafka成为一个完全自包含的系统。在Kafka的传统模式下,元数据管理依赖于ZooKeeper,这增加了部署和运维的复杂性。为了解决这个问题,Kafka社区引入了KRaft模式。在KRaft模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在Kafka集群内部的特殊日志中。这个日志使用Raft协议来保证一致性。

在这里插入图片描述

在左边架构中,Kafka集群包含多个 Broker 节点和一个ZooKeeper 集群。Kafka 集群的 Controller 在被选中后,会从 ZooKeeper 中加载它的状态。并且通知其他Broker发生变更,如 Leaderanddis r和 Updatemetdata 请求。

右边新的架构中,三个 Controller 节点替代三个ZooKeeper节点。Controller节点和 Broker 节点运行在不同的进程中。Controller 节点中会选举出一个 Leader 角色。并且Leader 不会主动向 Broker 推送更新,而是由 Broker 拉取元数据信息。

注意:Controller 进程与 Broker 进程在逻辑上是分离的,同时允许部分或所有 Controller 进程和 Broker 进程是同一个进程,即一个Broker节点即是Broker也是Controller

下面主要实践下 Kafka 集群 KRaft 模式下的搭建。

二、Kafka 集群 KRaft 模式搭建

部署规划如下:

hosthostnamerolenode id
11.0.1.146node1Broker,Controller1
11.0.1.147node2Broker,Controller2
11.0.1.148node3Broker,Controller3

以下操作三台机器均需要执行。

配置 hosts

vi /etc/hosts
11.0.1.146   node1
11.0.1.147   node2
11.0.1.148   node3

下载安装包:

wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz

解压:

tar -zxvf kafka_2.13-3.4.0.tgz

创建数据存储目录:

cd kafka_2.13-3.4.0
mkdir data

修改 config/kraft/server.properties 配置文件,注意 node.idadvertised.listeners 根据不同的机器编码填写,主要修改内容如下:

vi config/kraft/server.properties
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://node1:9092
controller.listener.names=CONTROLLER

在这里插入图片描述

生成集群唯一标志 ID,官方提供了 kafka-storage 工具可以生成唯一ID,也可以自己生成一个唯一的 ID

bin/kafka-storage.sh random-uuid

在这里插入图片描述

使用唯一标志 ID 初始化存储路径:

bin/kafka-storage.sh format -t cGuFZQ70Rf6OQFNMumq33g -c config/kraft/server.properties

在这里插入图片描述

KRaft 模式启动服务:

bin/kafka-server-start.sh -daemon config/kraft/server.properties

观察日志是否启动成功:

tail -f logs/server.log

在这里插入图片描述

三、环境测试

查看 Broker 情况:

bin/kafka-broker-api-versions.sh --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

测试创建 topic

bin/kafka-topics.sh --create --topic test --partitions 3 --replication-factor 2 --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

查看 topic 的情况:

bin/kafka-topics.sh --describe  --bootstrap-server node1:9092,node2:9092,node3:9092

在这里插入图片描述

发送 Topic 消息测试:

bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test

在这里插入图片描述

消费者消费消息:

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic test

在这里插入图片描述

这篇关于Kafka 集群 KRaft 模式搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025263

相关文章

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv