【kafka-02】kafka集群搭建

Kafka系列整体栏目


内容链接地址
【一】afka安装和基本核心概念https://zhenghuisheng.blog.csdn.net/article/details/142213307
【二】kafka集群搭建https://zhenghuisheng.blog.csdn.net/article/details/142253288

kafka集群搭建

  • 一,kafka集群搭建
    • 1,kafka下载和安装
    • 2,基础配置
    • 3,三台机器服务配置
    • 4,启动zookeeper
    • 5,启动三个kafka结点
    • 6,创建主题
    • 7,发送和消费数据

一,kafka集群搭建

1,kafka下载和安装

在集群搭建之前,需要先在官网下载一个压缩包,下载地址如下,目前下载的版本是 Scala 2.12 - kafka_2.12-3.6.2.tgz (asc, sha512),一定要下载二进制文件,不要下载源码

https://kafka.apache.org/downloads

在这里插入图片描述

随后将压缩包解压,这里把压缩包上传到 /usr/local/software/kafka 下面

tar -zxvf kafka_2.12-3.6.2.tgz

2,基础配置

由于我这边只有一台机器,因此搭建的是一台机器三个broker的集群,不管是在同一台机器上还是在不同的机器上,以下需要执行的命令都是相同的。

在解压完成之后,先复制安装目录下的config目录下的 server.properties 文件,先复制三份

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
cp config/server.properties config/server-3.properties

在这里插入图片描述

复制完成之后,分别给每个配置设置对应的数据存储目录,在 /usr/local/software/kafka/temp 目录下面,再创建三个目录

mkdir logs1
mkdir logs2
mkdir logs3

在这里插入图片描述

3,三台机器服务配置

修改 server-1.properties 文件的参数如下,端口号用9093,日志目录设置为logs1文件目录下

broker.id=1 										//	机器内部的唯一标识
listeners=PLAINTEXT://0.0.0.0:9093
advertised.listeners=PLAINTEXT://localhost:9093 	//ip用localhost或者服务器ip
log.dirs=/usr/local/software/kafka/temp/logs1		//设置kafka的日志目录
zookeeper.connect=localhost:2181 					//连接zookeeper,默认端口是2181

修改 server-2.properties 文件的参数如下,端口号用9094,日志目录设置为logs2文件目录下

broker.id=2 										//	机器内部的唯一标识
listeners=PLAINTEXT://0.0.0.0:9094
advertised.listeners=PLAINTEXT://localhost:9094		//ip用localhost或者服务器ip
log.dirs=/usr/local/software/kafka/temp/logs2		//设置kafka的日志目录
zookeeper.connect=localhost:2181 					//连接zookeeper,默认端口是2181

修改 server-3.properties 文件的参数如下,端口号用9095,日志目录设置为logs3文件目录下

broker.id=3 										//	机器内部的唯一标识
listeners=PLAINTEXT://0.0.0.0:9095												
advertised.listeners=PLAINTEXT://localhost:9095		//ip用localhost或者服务器ip
log.dirs=/usr/local/software/kafka/temp/logs3		//设置kafka的日志目录
zookeeper.connect=localhost:2181 					//连接zookeeper,默认端口是2181

4,启动zookeeper

在设置了三个机器的集群之后,先来启动这个zookeeper,zookeeper此时是只有一个节点,用的kaka下载内部自带的,因此需要在zk的配置文件中做相关配置

zookeeper.connect=localhost:2181 	//连接zookeeper,默认端口是2181

因此也不需要去额外的安装kafka。zookeeper的启动命令如下,通过安装目录下的bin中的脚本配合config目录下的配置结合使用。

bin/zookeeper-server-start.sh config/zookeeper.properties

5,启动三个kafka结点

启动三个节点的命令如下,启动时需要设置不同的结点的配置,并且通过 -daemon 后台的方式运行,也可以不加此命令,直接开三个端口分别执行

bin/kafka-server-start.sh -daemon config/server-1.properties
bin/kafka-server-start.sh -daemon config/server-2.properties
bin/kafka-server-start.sh -daemon config/server-3.properties

在这里插入图片描述

随后输入jps命令,可以查看到此时有三个kakfa的进程在启动

在这里插入图片描述

随后查看zookeeper上面是否已经有了这三个broker节点,通过下图可知此时三个节点都已经注册到了zookeeper上面

//执行进入zookeeper命令
bin/zookeeper-shell.sh localhost:2181
//查看broker结点情况
ls /brokers/ids

在这里插入图片描述

6,创建主题

创建一个3个副本,1个分区的Order订单主题,在9093的端口上。在执行这条命令的时候遇到报错的话,查看服务器端口9093,-9095是否开放

// partitions 表示设置分区数,replication-factor表示设置副本数
bin/kafka-topics.sh --create --topic 'order' --bootstrap-server localhost:9093 --partitions 1 --replication-factor 3

在这里插入图片描述

打印的结果如下,表示主题创建成功

Created topic order.

此时在9093的broker中已经有了order这个主题

//查看9093对应broker下的全部主题
bin/kafka-topics.sh --list --bootstrap-server localhost:9093

在这里插入图片描述

查看order主题的详情如下

bin/kafka-topics.sh --describe --topic order --bootstrap-server localhost:9093

在这里插入图片描述

接下来对返回的参数做一个详细的解释

  • Topic: order,指的是创建主题的名称为order
  • TopicId: Tf1fRjPDTBiL0WzNwgdtZQ,指的是topic的唯一id
  • PartitionCount: 1:指的是主题的分区数量,上面创建主题时设置的分区就是1个
  • ReplicationFactor: 3:指的是主题的副本,上面创建主题时设置的副本为3个
  • Partition: 0:指的是分区的详细信息,kafka从编号0开始
  • Leader: 2:表示在多副本中,broker2上面的副本为leader节点,负责处理生产者和消费者的请求
  • Replicas: 2,1,3:表示该分区所有副本所在的broker列表,只有一个副本是leader,其他的是follower
  • Isr: 2,1,3:表示能与leader同步的集合,可参与选举的副本

7,发送和消费数据

生产者发送消息如下,先发送到9093所在的broker上面

bin/kafka-console-producer.sh --topic order --bootstrap-server localhost:9093 

在这里插入图片描述

再切换到 /usr/local/software/kafka/temp/logs1 上面设置的log目录,然后切换到 order-0 目录下面,可以发现数据已经成功的发送到了broker中的分区上面

在这里插入图片描述

消费者消费最新的消息,也可以全量消费,因为kakfa会将这些日志默认的保留7天

bin/kafka-console-consumer.sh --topic order --bootstrap-server localhost:9093
bin/kafka-console-consumer.sh --topic order --from-beginning --bootstrap-server localhost:9093

也可以设置消费者组消费,一个分区中的消息只能被消费者组中的一个消费者消费

bin/kafka-console-consumer.sh --consumer-property group.id=group111 --topic order --bootstrap-server localhost:9093
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9093 --describe --group group111

大致的集群架构如下图,只不过这里是只有一个主题,并且分区只设置了一个

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534372.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++——深部解析哈希

好久不见给大家分享一张图片吧 目录 前言 二、库文件 1、哈希冲突 2 哈希函数 3、闭散列 三 、闭散列的实现和底层逻辑 1、哈希表(闭散列)的定义 2、哈希表(闭散列)的插入 3、哈希表(闭散列)的查找 4.哈希表…

灵雀云DevOps:加速应用交付,点燃业务创新引擎

导语 近日,国际知名咨询机构Gartner发布了2024年度DevOps平台魔力象限报告(Gartner Magic Quadrant for DevOps Platforms),为信息化决策者在技术战略层面提供了选型和评估DevOps平台供应商的全面视角。报告中,中国云…

MYSQL数据库——MYSQL管理

MYSQL数据库安装完成后,自带四个数据库,具体作用如下: 常用工具 1.mysql 不是指mysql服务,而是指mysql的客户端工具 例如: 2.mysqladmin 这是一个执行管理操作的客户端程序,可以用它来检查服务器的配置和…

DeviceNet网关HT3S-DNS-MDN读取七星华创CS310空气流量计数据应用案例

七星华创流量计CS310系列 (MODBUS RTU) 通过DeviceNet网关HT3S-DNS-MDN 与台达DVP系列的PLC进行交换数据应用案例 一、概述 本文主要介绍使用HI-TOP网关 HT3S-DNS-MDN在台达DVP系列 PLC和七星华创CS310流量计之间进行数据交换。 解决的问题:台达DVP系列如何通过…

pdf怎么压缩的小一点?4个方法帮你一键压缩

pdf怎么压缩的小一点?将PDF文件压缩得更小,不仅可以显著节省存储空间,还能加快文件在网络中的传输速度,让分享与备份变得更加便捷。特别是在处理大型文档或包含高分辨率图像的PDF时,压缩功能尤为重要。通过选择适合的压…

运维人员转行 AI 大模型全攻略:史上最详尽总结,一篇在手,转行无忧!

前言 做运维的苦,谁做谁懂。有时候真感觉自己就像个杂役,在公司都快成修电脑的了。不装了,我要转行!在此给大家分享点经验,希望能帮到你们。 运维工程师若要转行至大模型领域,需要学习一系列全新的技能与…

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:改为自动确认模式 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队列的消息可…

Google Dorks 发现隐藏的端点和参数

“作为一名漏洞赏金猎人,您的主要任务之一是绘制目标的攻击面,包括发现隐藏的参数和端点。这些可能会打开更深层次漏洞的大门,导致您可能未修补的 API 调用、未受保护的功能,甚至管理员级别的访问权限。Google Dorking 是一种非常…

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

一、引言 贫富差距的产生是信息差,技术贫富差距的产生亦如此。如果可以自我发现或者在别人的指导下发现优秀的开源项目,学习或工作效率真的可以事半功倍。 今天力荐的项目是LLaMA-Factory,我在去年8月份就开始使用这个项目进行模型部署和微…

域控操作十七点五:域用户无管理员权限下安装IT打包的软件

1,需要软件Runasspcadmin三件套和winrar压缩软件 2,将需要打包的软件放进这个文件夹内,使用播放器举个例子 3,打开runasspcadmin.exe 按图片写就行了 文件夹现在是这样的然后全选右击,用WinRAR添加到压缩包 这个可以自…

第二百三十一节 JPA教程 - JPA Transient示例、 JPA ID注释示例

JPA教程 - JPA Transient示例 如果我们不想将属性保存到数据库,我们可以使用Transient注释标记该字段。 例子 以下代码来自Professor.java。 package cn.w3cschool.common; import java.util.Locale;import javax.persistence.Entity; import javax.persistence.…

面试官:说说你对vue的mixin的理解,有什么应用场景?

一、mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类 Mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂 Vue中的mixin 先来看一…

Vue 中常用的基础指令

一. 什么是 Vue 指令 指令的定义和作用 指令是通过 Vue 实例的directives选项进行定义的。在指令的定义中,需要提供一个bind函数,它在指令第一次绑定到元素时被调用,可以执行一些初始化的操作。还可以提供update函数,它在指令所…

CCF201909_1

题解&#xff1a; #include<bits/stdc.h> using namespace std;struct tree {int id;int apple;int cut 0; };bool cmp(tree a, tree b) {if (a.cut b.cut){return a.id < b.id;}return a.cut > b.cut; }int main() {int n, m;cin >> n >> m;tree t…

成本估算模型

答案&#xff1a;B 知识点&#xff1a; COCOMO II模型 应用组装模型 对象点 早期设计阶段模型 功能点&#xff0c;代码行 体系结构阶段模型 代码行 解析&#xff1a; 基本COCOMO计算成本看代码量 中级COCOMO看代码量&#xff0c;硬件&#xff0c;人员等因素 详细CO…

2024逼自己做AI副业!月入2w+!

最近&#xff0c;身边朋友都在为赚钱发愁&#xff0c;加上大环境不行&#xff0c;心里更慌了。 对大部分人来说&#xff0c;工资只能缓解**“没钱”的****恐惧**&#xff0c;却不能改变“没钱”的事实。 但是&#xff0c;有这么一群人&#xff0c;踩中了**“AI”风口&#xf…

Maven从入门到精通(二)

一、什么是pom.xml pom.xml是Maven项目的核心配置文件&#xff0c;它是 项目对象模型 - Project Object Model&#xff08;POM&#xff09;的缩写。POM定义了项目的所有属性&#xff0c;包括项目的名称、版本、依赖关系、构建配置等。使用pom.xml&#xff0c;我们可以轻松地管…

安全装备检测系统源码分享

安全装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

c#如何读取Modbus中Slave和Poll的值

虚拟串口 Modbus Slave 右击设置slave定义 设置好地址后&#xff0c;设置连接。点击Connection–选择Connect Modbus Poll 右击选择设置定义 设置的内容要和slave一致 设置连接&#xff0c;点击Connection—选择Connect Poll和Slave连接之后&#xff0c;可以获取slave的值。我…

荣誉上榜!亲笔签入选2024年度重庆市网络安全优秀产品和技术名单

近日&#xff0c;在由重庆市委网信办与市经济信息委联合发起的网络安全优秀产品及技术评选活动中&#xff0c;亲笔签数字科技“数字笔迹可信身份认证系统”凭借其领先的安全隐私保护能力&#xff0c;以及在数字经济交易场景中广泛的应用潜力&#xff0c;成功入选《2024年重庆市…