首页 > 其他分享 >Kraft模式下Kafka脚本的使用

Kraft模式下Kafka脚本的使用

时间:2023-10-19 09:01:29浏览次数:39  
标签:脚本 -- 9092 Kafka sh 172.29 kafka Kraft server

Kafka集群 版本:V3.5.1

名称 Node1 Node2 Node3
IP 172.29.145.157 172.29.145.182 172.29.145.183

(1)查看Kraft集群中的状态以及Leader节点,投票节点
使用--status可以查看集群选举次数/水位线以及投票节点等
使用--replication可以查看Ledaer和Follower分布

使用kafka-metadata-quorum.sh

./kafka-metadata-quorum.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 describe --replication
image

./kafka-metadata-quorum.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 describe --status
image

(2)查看Kraft集群中的Topic
使用--list可以查看所有的topic
使用--describe --topic topicname可以查看指定topic的分区状态和副本同步状态

使用kafka-topics.sh

./kafka-topics.sh --list --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092
image

./kafka-topics.sh --describe --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic1
image

(3)启动与关闭Kraft集群
启动集群时一定需要添加--daemon参数以后台守护进程运行

使用kafka-server-start.sh
使用kafka-server-stop.sh

./kafka-server-start.sh -daemon ../config/kraft/server.properties
启动后可以使用jps来查看kafka集群是否启动成功
image

关闭集群也需要加上参数server.properties
./kafka-server-stop.sh ../config/kraft/server.properties

(4)测试集群性能

使用kafka-producer-perf-test.sh生产数据
使用kafka-consumer-perf-test.sh消费数据

./kafka-producer-perf-test.sh --producer-props bootstrap.servers=172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic1 --num-records 1000000 --record-size 4096 --throughput 50000

--topic指定topic
--num-records指定生产者产生的消息数量
--record-size指定一条消息的大小KB为单位
--throughput指定生产者每秒写入的消息数量限制(吞吐量),-1则为不限制

image
反馈的指标是生产者发送了一百万条消息,每秒生产消息15377条(生产速率60MB/s),平均时延394毫秒,后续就是各种时延的分布范围

./kafka-consumer-perf-test.sh --topic test-topic1 --messages 1000000 --fetch-size 40000 --broker-list 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092

使用--topic指定topic
使用--messages指定需要消费的消息数量
使用--fetch-size指定一次获取的消息总大小
使用broker-list来指定消费的broker

image
反馈的指标是 Kafka集群消费100万条消息用时23秒,消息总大小3906MB,平均每秒消费速率168MB,消息总数量1000015条,每秒消费消息数量43185条

(5)命令行验证生产实时消费

使用kafka-console-producer.sh实时生产消息
使用kafka-console-consumer.sh实时消费消息

./kafka-console-producer.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic2

image

./kafka-console-consumer.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic2

image

同时在Kafka管控平台上也能够实时查询到test-topic2上的消息
image

同时我们也可以指定offset来使消费者从指定offset开始消费,对于生产环境有利于故障恢复
./kafka-console-consumer.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic2 --partition 1 --offset 2
可以看到由于输入的消息key相同所以消息都分到了partition1上,所以在消费消息时需要指定分区partition1,然后指定offset消息位移量2,就可以读取到offset=2对应的消息3以及之后的所有消息了

image

(6)查询消费者组信息

使用kafka-consumer-groups.sh

./kafka-consumer-groups.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --list

image

./kafka-consumer-groups.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --group perf-consumer-91301 --describe
通过--list查询到消费者组列表再通过--describe查询具体信息

image

可以看到在test-topic1主题上的partition5和partition0的Lag为18,代表着两个分区还有18条消息没有消费,通过kafka-console-consumer.sh尝试消费partition5的剩余18条消息
./kafka-console-consumer.sh --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092 --topic test-topic1 --group perf-consumer-91301

ps:很多很多消息,因为输入的时候一条消息的大小由--record-size决定,设置为4096KB...
此时再通过describe查看消费者组情况看在partition5和partition0上是否还有消息Lag

image
可以看到消息都消费完了,Lag也已为0,再执行相同的命令只会等待而不会继续输出消息

标签:脚本,--,9092,Kafka,sh,172.29,kafka,Kraft,server
From: https://www.cnblogs.com/iamxiaofu/p/17754944.html

相关文章

  • 【脚本】GuctOJ Helper 发布页
    我不会弄自动更新啊,OJ更新了记得来这里再复制一下代码GutcOJHelper基于油猴,不知道什么是油猴请自行百度适配GuctOJ3.x和2.0版本。网址:https://oj.oimaster.top经由NFLSOJHelper改编而来。NFLSOJHelper发布页:http://www.nfls.com.cn:20035/article/1197更新日志:h......
  • 安防视频监控系统EasyCVR视频汇聚存储平台定制化开发:新增kafka配置
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-......
  • WinSCP 脚本实现将 jar 包一键上传 Ubuntu 并 docker 部署
    准备首先,在Ubuntu写一个.sh脚本用于自动更新jar包的docker容器和镜像,然后在Windows写一个.bat脚本用于上传jar包并运行.sh脚本。deploy.sh#Kill容器dockerkilldemo#删除容器dockerrmdemo#删除镜像dockerrmimy/demo#构建镜像dockerbuild-t......
  • Kafka高效文件存储设计特点
    Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。通过索引信息可以快速定位message和确定response的最大大小。通过index元数据全部映射到memory,可以避免segmentfile的IO磁盘操作。通过索引文件稀疏存储,可以大......
  • Kafka Broker一些特性
    4.1无状态的KafkaBroker:1.Broker没有副本机制,一旦broker宕机,该broker的消息将都不可用。2.Broker不保存订阅者的状态,由订阅者自己保存。3.无状态导致消息的删除成为难题(可能删除的消息正在被订阅),kafka采用基于时间的SLA(服务水平保证),消息保存一定时间(通常为7天)后会被删除。......
  • Kafka 生产者-消费者
    消息系统通常都会由生产者,消费者,Broker三大部分组成,生产者会将消息写入到Broker,消费者会从Broker中读取出消息,不同的MQ实现的Broker实现会有所不同,不过Broker的本质都是要负责将消息落地到服务端的存储系统中。具体步骤如下:生产者客户端应用程序产生消息:客户端连接对象将消息包装......
  • 运行shell脚本时报错"[[ : not found"解决方法
    实例if["$system"=="CentOS"];thenecho"yuminstallbc"elif["$system"=="Ubuntu"]||["$system"=="Debian"];thenecho"aptinstallbc"fi}运行至判断表达式时报错,sh命令无法识别&qu......
  • Linux健康检查脚本
    脚本内容如下:[root@zabbix-agentscritps]#cathealthcheck.sh#!/bin/bash#colornotesNormal='\033[0m'GREEN='\033[0;32m'RED='\033[0;31m'YELLOW='\033[0;33m'cyan='\033[0;36m'yellow='\033[0;33m'#Sec......
  • OpenStack CentOS 7 一键安装脚本
    一键安装脚本,可以复制粘贴挥着下载install.sh文件,传到服务器进行安装就行  #!/bin/bashyumupdateyuminstall-ywget#使用wget命令下载wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repoyumupdate注意:如果没有wget命令,请......
  • 布尔盲注万能脚本
    来自:[WUSTCTF2020]颜值成绩查询脚本如下(python)使用时修改为自己的Success_message,url,以及re的正则规则即可。importtimeimportrequestsimportreSuccess_message="Hi"defcont(text):obj=re.compile(r'<h2class="mb">(?P<xiao>.*?)</h2>&#......