kafka KRaft 集群搭建

2024-01-09 22:12
文章标签 集群 搭建 kafka kraft

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

kafka KRaft集群安装

包下载

https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz

kafka集群构建好后的数据目录结构

[root@localhost data]# tree /data/kafka
/data/kafka
├── kafka-1	# 节点1源码目录
├── kafka-2	# 节点2源码目录
├── kafka-3	# 节点3源码目录
└── kafkadata	# kafka数据存放目录├── kafkadata1	# 节点1数据存放目录├── kafkadata2	# 节点2数据存放目录└── kafkadata3	# 节点3数据存放目录

更改kafka配置文件

kafka节点1配置文件
[root@localhost kraft]# cat cat /data/kafka/kafka-1/config/kraft/server.properties  |grep -Ev "#|^$"
# 表示kafka的KRaft模式
process.roles=broker,controller
# 集群节点的标记
node.id=1
# 参与集群投票节点
controller.quorum.voters=1@localhost:19093,2@localhost:29093,3@localhost:39093
# 定义监听地址
listeners=PLAINTEXT://:19092,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
# 对外宣告地址
advertised.listeners=PLAINTEXT://localhost:19092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kraft-combined-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
kafka节点2配置文件
[root@localhost kafka]# cat /data/kafka/kafka-2/config/kraft/server.properties  |grep -Ev "#|^$"
process.roles=broker,controller
node.id=2
controller.quorum.voters=1@localhost:19093,2@localhost:29093,3@localhost:39093
listeners=PLAINTEXT://:29092,CONTROLLER://:29093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://localhost:29092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/kafkadata/kafkadata2
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
kafka节点3配置文件
[root@localhost kafka]# cat /data/kafka/kafka-3/config/kraft/server.properties  |grep -Ev "#|^$"
process.roles=broker,controller
node.id=3
controller.quorum.voters=1@localhost:19093,2@localhost:29093,3@localhost:39093
listeners=PLAINTEXT://:39092,CONTROLLER://:39093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://localhost:39092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/kafkadata/kafkadata3
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

获取集群uuid

[root@localhost kafka]# /data/kafka/kafka-1/bin/kafka-storage.sh random-uuid
fzSBf0PjTRi3zNH_0Abc-g

格式化kafka数据存储目录

/data/kafka/kafka-1/bin/kafka-storage.sh format -t fzSBf0PjTRi3zNH_0Abc-g -c /data/kafka/kafka-1/config/kraft/server.properties
/data/kafka/kafka-2/bin/kafka-storage.sh format -t fzSBf0PjTRi3zNH_0Abc-g -c /data/kafka/kafka-2/config/kraft/server.properties
/data/kafka/kafka-3/bin/kafka-storage.sh format -t fzSBf0PjTRi3zNH_0Abc-g -c /data/kafka/kafka-3/config/kraft/server.properties

启动kafka

nohup /data/kafka/kafka-1/bin/kafka-server-start.sh /data/kafka/kafka-1/config/kraft/server.properties >> /data/kafka/kafkadata/kafka-1.log &
nohup /data/kafka/kafka-2/bin/kafka-server-start.sh /data/kafka/kafka-2/config/kraft/server.properties >> /data/kafka/kafkadata/kafka-2.log &
nohup /data/kafka/kafka-3/bin/kafka-server-start.sh /data/kafka/kafka-3/config/kraft/server.properties >> /data/kafka/kafkadata/kafka-3.log &

创建主题,3个分区,3个副本

 /data/kafka/kafka-3/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:39092 --replication-factor 3 --partitions 3

列出主题,查看主题是否创建

 /data/kafka/kafka-3/bin/kafka-topics.sh --list --bootstrap-server localhost:39092

生产消息

 /data/kafka/kafka-3/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:39092

消费消息

 /data/kafka/kafka-3/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:39092

检查集群脚本状态

/data/kafka/kafka-3/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:39092

集群的性能测试

生产者性能测试
 /data/kafka/kafka-3/bin/kafka-producer-perf-test.sh --topic test-topic --num-records 50000 --record-size 1000 --throughput -1 --producer-props bootstrap.servers=localhost:39092
消费者性能测试
 /data/kafka/kafka-3/bin/kafka-consumer-perf-test.sh --topic test-topic --bootstrap-server localhost:39092 --fetch-size 1048576 --messages 50000 --threads 1

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



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

相关文章

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

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

如何搭建并配置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

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli