Kafka-manager部署与测试(完整) 推荐

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: Kafka-manager部署一、概念    概念百度了一下,可以根据相关资料进行理解。1.1 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

Kafka-manager部署

一、概念

    概念百度了一下,可以根据相关资料进行理解。

1.1 Kafka是一种高吞吐量的分布式布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

Broker

Kafka集群包含一个或多个服务器,这种服务器被称为broker 

Topic

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

Partition

Partition是物理上的概念,每个Topic包含一个或多个Partition.

Producer

负责发布消息到Kafka broker

Consumer

消息消费者,向Kafka broker读取消息的客户端。

Consumer Group

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

1.2 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogleChubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的基本运转流程:

1、选举Leader。

2、同步数据。

3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。

4、Leader要具有最高的执行ID,类似root权限。

5、集群中大多数的机器得到响应并follow选出的Leader。

1.3 kafka-manager为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:

1.管理多个kafka集群
2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
3.选择你要运行的副本
4.基于当前分区状况进行
5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
6.删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
7.Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
8.为已存在的topic增加分区
9.为已存在的topic更新配置
10.在多个topic上批量重分区
11.在多个topic上批量重分区(可选partition broker位置)

kafka-manager 项目地址:https://github.com/yahoo/kafka-manager

二、部署

2.1 初始化环境

初始化系统,关闭防火墙修改主机名与ip名称

名称

HOSTNAME

IP

1

kafka-1

172.17.10.207

2

kafka-2

172.17.10.208

3

kafka-3

172.17.10.209

wKioL1k-hyLTzoIdAABA_mIhOu8456.png

2.2 java安装

yum install -y java-1.8.0-openjdk

2.3 安装zookeeper(三台都装)

cd /usr/local
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar zxf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 zookeeper
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg

tickTime=2000                            #服务之间或者客户端与服务段之间心跳时间
initLimit=10                             #Follower启动过程中,从Leader同步所有最新数据的时间
syncLimit=5                              #Leader与集群之间的通信时间
dataDir=/usr/local/zookeeper/data        #zookeeper存储数据
datalogDir=/usr/local/zookeeper/logs     #zookeeper存储数据的日志
clientPort=2181                          #zookeeper默认端口
#集群配置信息
server.1=172.17.10.207:2888:3888
server.2=172.17.10.208:2888:3888
server.3=172.17.10.209:2888:3888

server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里

#172.17.10.207为集群里的IP地址,第一个端口是masterslave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888


完整配置

wKiom1k-h_Owof1zAAA_S3ARDa0331.png

cd /usr/local/zookeeper
mkdir data logs                                #创建数据与日志文件夹
cd data
echo  “1”>myid                              #第2 台zookeeper服务器就echo 2
/usr/local/zookeeper/bin/zkServer.sh start                               #启动

wKiom1k-iH2y-sQCAAAogzjGDyY630.png

/usr/local/zookeeper/bin/zkServer.sh status                                   #查看状态

wKioL1k-iH6ySX6rAAAk4es8yYE625.pngwKiom1k-iH7DJXzEAAAllbZYLJo128.png

2.4 安装kafka(三台都装)

wget http://apache.fayea.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz
tar zxf kafka_2.11-0.10.0.0.tgz
mv kafka_2.11-0.10.0.0/ kafka
cd kafka/config

编辑 server.properties

broker.id=1                                              #kafka集群标识,不能相同,第一台是1以此类推,其他都一样。
log.dirs=/usr/local/kafka-logs
host.name=172.17.10.184                                  #主机ip
zookeeper.connect=172.17.10.185:2181,172.17.10.184:2181,172.17.10.183:2181
mkdir /usr/local/kafka/kafka-logs
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &     #启动kafka

查看是否启动成功

netstat -ntpl|grep 9092

wKiom1k-iaGwXahGAAAYQ_ZMmhY407.png

2.4 安装kafka-manager

git clone https://github.com/yahoo/kafka-manager
cd kafka-manager
sbt clean distcd            #过程比较长

得到文件kafka-manager-1.3.0.8.zip

unzip kafka-manager-1.3.0.8.zip -d /usr/local
cd /usr/local/kafka-manager-1.3.0.8
修改配置 conf/application.properties
# 如果zk是集群,这里填写多个zk地址
kafka-manager.zkhosts="172.17.10.185:2181,172.17.10.184:2181,172.17.10.183:2181"

启动

kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &

浏览器访问

wKiom1k-ilHwIVsiAAEBN18X5LI789.png

三、测试

对Kafka进行测试。分别创建topic,producer,consumer,最好是在不同的节点上创建。在producer的控制台上输入信息,观察consumer控制台是否能够接收到。

3.1 创建topic

./kafka-topics.sh --create --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181 --replication-factor 3 --partitions 3 --topic xuel

--replication-factor   指定partition的replicas数,建议设置为2;

--partitions 指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两个partition最好;

--topic xuel  主题为xuel

3.2 查看topic

./kafka-topics.sh --describe --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181  --topic xuel

通过web界面创建topic-{1-4}

wKioL1k-jHvTd4c5AAEQFPD_9XY185.png

3.3 删除topic

./kafka-topics.sh --delete --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181  --topic xuel

3.4 创建发布者

在一台服务器上创建一个发布者(发布者发送消息)

创建broker

./kafka-console-producer.sh --broker-list  172.17.10.173:9092,172.17.10.172:9092,172.17.10.171:9092,172.17.10.170:9092 --topic xuel

wKiom1k-jTeTHVbhAAAdr3tLEtE956.png

3.5 创建消费者

在一台服务器上创建一个订阅者(订阅者接受消息)

./kafka-console-consumer.sh --zookeeper 172.17.10.173:2181,172.17.10.172:2181,172.17.10.171:2181,172.17.10.170:2181 --from-beginning --topic xuel

wKiom1k-jemwSYJbAABFsoEWlIY706.png

3.6 通过web界面查看

wKiom1k-j_Hw2x3nAADeFgEEgQU296.png

wKiom1k-kG3TvWlwAAHEP5mLULg379.png

wKiom1k-j_OgAEpyAADPLeK_rfY052.png


目录
相关文章
|
4月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
303 10
|
7月前
|
机器学习/深度学习 自然语言处理 API
阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
DeepSeek R1是基于Transformer架构的先进大规模深度学习模型,2025年1月20日发布并开源,遵循MIT License。它在自然语言处理等任务上表现出色,高效提取特征,缩短训练时间。阿里云推出的满血版方案解决了服务器压力问题,提供100万免费token,云端部署降低成本,用户可快速启动体验。虽然回答速度有待提升,但整体表现优异,备受关注。
258 8
|
9月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
1993 1
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
8月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
180 10
|
10月前
|
敏捷开发 Devops 测试技术
自动化测试中的持续集成与持续部署
在现代软件开发实践中,自动化测试是确保软件质量和快速迭代的关键。本文将探讨自动化测试如何与持续集成(CI)和持续部署(CD)流程相结合,以提高开发效率和软件质量。我们将分析CI/CD管道中自动化测试的最佳实践,以及如何克服实施过程中的挑战。
129 6
|
10月前
|
缓存 自然语言处理 并行计算
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
3800 1
|
11月前
|
消息中间件 中间件 Kafka
解锁Kafka等消息队列中间件的测试之道
在这个数字化时代,分布式系统和消息队列中间件(如Kafka、RabbitMQ)已成为日常工作的核心组件。本次公开课由前字节跳动资深专家KK老师主讲,深入解析消息队列的基本原理、架构及测试要点,涵盖功能、性能、可靠性、安全性和兼容性测试,并探讨其主要应用场景,如应用解耦、异步处理和限流削峰。课程最后设有互动答疑环节,助你全面掌握消息队列的测试方法。
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
669 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。