【Kafka】(一)Kafka的单机配置,以及集群环境部署

kafka使用以及基于zookeeper集群搭建集群环境 一、环境介绍zookeeper下载地址:https://zookeeper.apache.org/releases.html kafka下载地址:https://kafka.apache.org/downloads192.168.142.129 apache-zookeeper-3.8.4-bin.tar.gz ... 阅读详情

1. 环境介绍

Kafka在2.8版本之前是必须使用zookeeper(后面统称为ZK)作为数据存储的节点的,需要把Kafka中一些重要的数据存储在ZK中,在2.8版本之后,Kafka提出了去ZK化,将重要的数据存储在自身的节点中了,本篇博客还是以ZK作为重要数据存储节点来搭建,后续的博客中,我会将不用ZK搭建的Kafka教程也更新出来,如果有兴趣的可以关注我一下,后面我将持续的更新。

2.部署前的准备

我们这次搭建的是2台kafka集群以及1台ZK节点,使用2台centos7的虚拟机,ZK的集群部署在后面的博客中我会更新,我们先用1台ZK节点,在配置中的区别不大。

  • centos7中JDK环境的搭建:这里可以参考我的CI/CD专栏中jenkins那篇博客,里面有安装JDK环境的教程

  • Kafka版本3.0.0:Kafka3.0.0下载地址
    在这里插入图片描述

  • ZK版本3.5.9:Zookeeper3.5.9下载地址
    在这里插入图片描述

  • 2台虚拟机(Centos7系统),命名为centos1和centos2
    在这里插入图片描述
    为了我们后续使用方便,我们将虚拟机设置成NAT模式,并且把IP地址给固定一下,虚拟机还不会使用的,可以从我的博客中的工具专栏里面找到安装的方法。下面我们教一下如何设置主机名和固定IP地址

设置主机名

配置主机名
在这里插入图片描述
配置完主机名之后需要重启一下虚拟机

固定IP

vi  /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述
各位根据自己虚拟机的真实情况编写,可能网关和可以分配的IP和我这里不一样。可在虚拟机的虚拟网络编辑器中查看
另一台虚拟机的地址,我这里设置成了192.168.181.129

设置完成之后,记得重启一下网络的服务

systemctl restart network.service

3. 搭建kafka集群

将我们下载的压缩包上传到服务器中
在这里插入图片描述

3.1 解压压缩包

解压压缩包到 /usr/local 目录下

tar -zxvf /home/kafka/kafka_2.12-3.0.0.tgz -C /usr/local
tar -zxvf /home/zookeeper/apache-zookeeper-3.7.0-bin.tar.gz -C /usr/local

解压后把文件改一下名称

mv apache-zookeeper-3.7.0-bin zookeeper
mv kafka_2.12-3.0.0 kafka

此时,/usr/local 下的目录结构应该是这个样子的,
在这里插入图片描述

3.2 搭建Zookeeper

1.在zookeeper目录中新建一个data文件夹

mkdir /usr/local/zookeeper/data

2.接下来配置zookeeper的配置文件,首先我们先将zoo_sample.cfg文件复制一份出来

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

3.接下来,我们编辑 zoo.cfg文件

vi /usr/local/zookeeper/conf/zoo.cfg

修改存放数据的目录为我们刚刚新建的data目录
在这里插入图片描述
退出保存 !wq
4.为了让我们在任何的目录下都能使用ZK的命令,这里我们需要配置一下ZK的环境变量

vi /etc/profile

在文件中添加如下的配置

#zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:${ZK_HOME}/bin

在这里插入图片描述
退出保存 !wq
使配置文件生效

source /etc/profile

5.接下来,启动一下我们ZK试试

zkServer.sh start 

看到如下的信息,基本表示我们的ZK已经启动成功了
在这里插入图片描述
6.为了验证一下 ,我们连接一下ZK试试

zkCli.sh

这里看到,我们已经进入了ZK的命令行,表示ZK已经搭建成功了
在这里插入图片描述

3.3 搭建Kafka集群

1.配置Kafka的环境变量

vi /etc/profile

添加如下信息

#Kafka environment
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:${KAFKA_HOME}/bin

配置生效

source /etc/profile

2.在Kafka文件夹中新建一个data目录存放数据

mkdir -p /usr/local/kafka/data

3.编辑Kafka的配置文件

vi /usr/local/kafka/config/server.properties

这里关注4个参数

# kafka集群中的唯一ID
broker.id=0
# kafka节点的IP地址
listeners=PLAINTEXT://192.168.181.128:9092
# kafka存储数据的地址
log.dirs=/usr/local/kafka/data
# ZK节点地址
zookeeper.connect=192.168.181.128:2181/kafka
# 如果这里配置的是ZK的集群,后面的地址用逗号分隔,例如192.168.181.128:2181,192.168.181.129:2181/kafka,后面的/kafka目录是指定在ZK中把Kafka中的数据全部存在这个目录下,如果后面我们不用Kakfa了,方便把ZK的数据给清理一下

4.启动Kafka,看看能不能工作

kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

在这里插入图片描述
这里看到我们的kafka已经启动起来了

5.我们将我们配置好kafka文件发送到centos2这台机器

scp -r /usr/local/kafka/ root@192.168.181.129:/usr/local/kafka/

我这里配置ssh免密登陆,如果没有配置的可以参考的我的linux专栏中的文章,没有配置的需要输入一下另一台机器的密码

6.将另一台机器的配置修改一下
环境变量这些就不说了,和上面的一样,主要修改一下kafka中的server.properties

vi /usr/local/kafka/config/server.properties

主要修改以下几个参数

# 因为刚刚的那台Kakfa我们设置成了0,所以这台我们设置成1
broker.id=1
# 配置成本台机器的地址
listeners=PLAINTEXT://192.168.181.129:9092

7.启动第二台Kafka

 kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

这里可能有的人会启动不起来,因为我们刚刚把centos1这台机器的kafka发送到centos2,centos1这台机器中data文件夹已经有数据了,所以启动不起来,只要把centos2kafka里面的 data文件夹给删除重新建一下就好了
8.在centos1机器中ZK节点中查看一下borkers,看看是不是有两台Kafka节点连了上来

zkCli.sh
ls /kafka/brokers/ids

在这里插入图片描述
可以看到,我们的kafka数据全部存到了ZK中的kafka目录中,并且brokers里面已经有两台机器注册进来了。

4. 简单的生产者消费者测试

1 我们在128的这台节点上新建一个first主题

kafka-topics.sh --bootstrap-server 192.168.181.128:9092 --create --topic first --partitions 2 --replication-factor  2

2.我们试试在129这台机器上能不能看到这个主题

kafka-topics.sh --bootstrap-server 192.168.181.129:9092 --list

kafka-topics.sh --bootstrap-server 192.168.181.129:9092 --topic  first --describe

在这里插入图片描述
可以看到,我们集群环境已经搭建成功了,两台机器的数据是互通的
3.我们在128上作为提供者,在129上消费看看能不能成功

生产者

kafka-console-producer.sh --bootstrap-server 192.168.181.128:9092 --topic first

消费者

kafka-console-consumer.sh --bootstrap-server 192.168.181.129:9092 --topic first

在这里插入图片描述
在这里插入图片描述
可以看到,我们在128往first主题发送信息,在129的broker中依然可以接收到,说明我们的集群环境搭建成功。

kafka发送消息至指定分区 前言 在实际使用中,我们可能需要对某个topic下不同的消息进行分类管理,比如确保消费的顺序性,在这种场景下,我们可以首先确保生产者发送消息到指定的分区即可 本文的测试基于docker搭建的一个双节点的简单集群,有兴趣搭建的同学可参考我的另一篇博客 1、创建一个名为second的topic 在该topic下,有3个分区,两个副本 $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 2 --pa 阅读详情

相关推荐

Kafka 单机和集群环境部署教程

通过以上步骤,我们成功部署了 Kafka 单机和集群环境,并实现了一个简单的生产者和消费者应用。Kafka 提供了高吞吐量、低延迟的消息传递能力,适合用于实时流处理和数据管道。

闲人编程的博客 3307

分布式中间件之Kafka

安装kafka 下载地址 ​ https://kafka.apache.org/documentation/#gettingStarted 解压 tar -zxvf kafka_2.12-2.4.1-C /usr/local/ 进入到config目录,编辑 server.properties 配置文件 # 每个broker节点的id,集群架构下要唯一 broker.id = 0 # kafka对外提供的ip和端口号 #listeners=PLAINTEXT://:9092 # 这是系统默认的 # 这里的ip

weixin_44963129的博客 3390

Kafka单机与集群部署全攻略

Kafka 的部署主要分为(依赖 Zookeeper)和(无 Zookeeper,Kafka 2.8.0 + 支持,3.3.0 + 正式稳定)。以下详细介绍部署步骤。

SmallBull的博客 1650

无缝部署Kafka集群环境:成功实践指南

一、Kafka集群。 二、搭建两台服务器: 2.1、 zookeeper部署, 2.2、 启动1号机器的broker, 2.3、 启动2号机器的broker, 2.4、查看kafka集群, 2.5、测试集群。

Lion_Long的博客 1828

Mind+掌控板实战:5分钟搞定Easy IoT的MQTT通讯(附完整代码)

本文详细介绍了如何利用掌控板和Mind+图形化编程软件,快速实现基于Easy IoT平台的MQTT通讯。通过清晰的步骤讲解和完整的代码示例,指导用户完成从云端配置、Wi-Fi连接到MQTT消息发布与订阅的全过程,帮助初学者轻松构建物联网设备间的双向对话系统。

weixin_29300241的博客 445

避坑指南:DDR4内存条Margin测试Fail?从Intel RMT工具到PCB Layout的完整排错思路

本文深入探讨了DDR4内存条在Margin测试中Fail的完整排错思路,从Intel RMT工具分析到PCB Layout优化。通过实战案例,详细解析了信号完整性问题的诊断与解决方案,包括拓扑结构影响、传输线参数优化及HyperLynx仿真验证,为硬件设计工程师提供了宝贵的避坑指南。

weixin_42530458的博客 449

Kafka生产者原理 kafka生产者发送流程 kafka消息发送到集群步骤 kafka如何发送消息 kafka详解

第一次调用时随机生成一个整数(后面每次调用在这个整数上自增),将这个值与 topic 可用的 partition 总数取余得到 partition 值,也就是常说的 round-robin 算法。6. 消息缓存到RecordAccumulator收集器,分配到该分区的DQueue(RecordBatch),k值先进行hash获取hashCodeValue, 再与topic下的分区数进行求模取余,进行分区。如 k hash = 5 topic目前的分区数2 则 分区为:1。

求是 1389

APS项目大都失败告终?

通过上述分析,APS从二十多年前的流行到如今的实施困境,背后涉及企业自身、供应商、项目管理等原因,既有理论发展的复杂性增加的原因,也有企业对APS期望值过高和误解的因素。APS(Advanced Planning and Scheduling)高级排程系统是一种高度智能化的计划和排程系统,它通过整合各种生产和供应链数据,运用先进的算法和数据模型,根据各种约束条件,如资源限制、交货期、生产能力等,以最优的方式规划和调度生产活动,从而为生产计划提供最优解决方案。高级管理层的支持对于APS项目的成功至关重要。

数字化藏经阁 1343

kafka的原理及集群部署详解

Kafka是一个分布式的发布/订阅消息系统,最初由LinkedIn(领英)公司发布,使用Scala语言编写,后成为Apache的顶级项目。kafka主要用于处理活跃的数据,如登录、浏览、点击、分享等用户行为产生的数据。

Gefangenes的博客 2110

大模型时代必备技能:3种向量量化技术对比(PQ/AQ/RVQ)与选型指南

本文深入解析了大模型时代处理海量向量数据的关键技术——向量量化。通过对比Product Quantization (PQ)、Additive Quantization (AQ)和Residual Vector Quantization (RVQ)三种主流技术的核心原理、性能表现与适用场景,为工程师提供了从理论到实践的选型指南,旨在解决向量存储与检索的效率瓶颈,助力RAG等大模型应用高效落地。

silver的专栏 795

2025东三省D题深圳杯数学建模实战解析:基于多模型融合的法医STR混合样本智能识别系统

本文深入解析了2025年东三省数学建模竞赛D题,即深圳杯赛题,聚焦于法医STR混合样本的智能识别挑战。文章系统阐述了构建一个基于多模型融合的智能识别系统的完整流程,涵盖贡献者人数判定、DNA贡献比例估计、个体基因型推断以及STR谱图去噪四大核心步骤。通过融合高斯混合模型、随机森林、非负矩阵分解、小波变换与深度学习等多种技术,并强调特征工程的重要性,为破解法医DNA混合样本分析这一行业难题提供了清晰的数学建模与AI实战思路。

weixin_29050271的博客 390

docker-compose部署kafka单机和集群

从 3.3 版本后,Kafka 引入了 KRaft 来替代 ZooKeeper,所以我们不必再部署 zk 了。选择集群切换 -> 新增集群,填好配置后,选择切换,就可以管理我们的 kafka 集群了。这里部署了 3 个 Broker,即 Kafka1、Kafka2 和 Kafka3。我们之后测试肯定用集群部署,就算是测试,也不用单机模式,单机就是玩具哈 = =以上两个部署 kafka 的 yaml 文件中,都设置了。所以我们上面加了权限后,就可以正常运行了。的 ip 地址为自己的。打开管理工具的运维界面。

岁月失语,惟石能言 3021

射频仿真软件:ADS (Advanced Design System)_(29).ADS脚本编程与自动化

ADS脚本编程为射频设计提供了强大的自动化工具,可以帮助用户实现设计流程的优化、参数扫描和优化、结果分析和报告生成等任务。选择合适的脚本语言(Python、Tcl、AEL)并合理设置ADS环境,可以显著提高设计效率和准确性。通过实际项目中的应用案例,我们可以更好地理解如何利用脚本编程解决复杂的射频设计问题。希望本文对您的ADS脚本编程学习有所帮助。

kkchenjj的博客 2469

Kafka环境搭建:从单机到集群实战

本文详细介绍了Kafka单机与集群环境的搭建方法。单机环境需先安装JDK和Zookeeper,配置相关参数后启动服务;集群环境则需要配置多节点Zookeeper集群,确保各Kafka节点broker.id唯一并正确设置监听地址。文中提供了配置文件示例,并针对节点通信失败问题给出了网络检查、配置核对等解决方案。通过本教程可掌握Kafka环境部署技能,为后续学习主题分区等进阶内容奠定基础。

fykam的博客 1308

【2026年华为暑期实习(非AI方向(通软&嵌软&测试&算法&数据科学))-4月8日-第一题- 包裹的编码】(题目+思路+Java&C++&Python解析+在线测试)

摘要:该问题要求将给定的十进制整数N转换为混合进制编码字符串,并处理回文检测。首先根据N的符号位确定编码首位(0或1),然后按输入的进制序列依次对N的绝对值进行取余和整除操作,得到编码数组。将数组元素转换为字母后生成字符串,若字符串为回文则添加"(palindrome)"后缀;否则输出最长回文子串(字典序最小)。算法采用中心扩展法检测回文,时间复杂度为O(L²),空间复杂度为O(L),其中L为字符串长度。

m0_73659489的博客 129

IP-Guard安全网关实例

企业相关情况: 1.OA系统,主要为日常工作使用,该系统IP为192.168.1.2,端口为8080; 2.文件共享服务器,用于存放日常工作资料和文档,该文件共享服务器的IP为192.168.1.1,其中\\192.168.1.1\private 目录中的存放着公司重要文档,不能随意外传; 3.安全网关已采用串联的方式联入网络,IP为192.168.2.6,所有机器访问OA系统和文件共享服务...

IP-Guard专栏 705

KAFKA的安装配置

一、kafka单机部署 1. 上传kafka_1.20-0.10.1.0.tgz到linux 2. 解压 tar -xzvf kafka_1.20-0.10.1.0.gz -C /home/hadoop/work/   3. 在bin下查看脚本 cd /home/hadoop/work/ kafka_1.20-0.10.1.0/bin 在c

pan_haufei的博客 481

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

kafka安装部署

单机安装部署 下载安装 cd /data/program wget https://mirror.bit.edu.cn/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz tar -xzvf kafka_2.13-2.6.0.tgz cd kafka_2.13-2.5.0 2.启动zookeeper kafka需要依赖ZK,安装包中已经自带了一个ZK,也可以改成指定已运行的ZK。 如果改成指定的ZK需要修改修改 kafka 安装目录下的 config/server.prop

huming720的博客 596

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

kafka使用——安装配置(2)

文章目录基础环境配置JDK安装Windows安装Linux安装JDKSSH安装配置ZooKeeper环境windows安装ZookeeperLinux搭建Zookeeper环境Docker部署Kafka单机部署Windows环境安装KafkaLinux环境安装kafkaDocker部署集群环境部署 基础环境配置 Kafka是用Scala语言开发的,鱼腥在JVM上,因此在安装Kafka之前需要安装J...

mikrotik的博客 283

KAFKA单机和集群安装部署

KAFKA安装部署

qq_39166937的博客 1286

docker部署Kafka

Kafka集群部署

seven_sky_d的博客 785

kafka下载及集群配置创建

介绍 官网:http://kafka.apache.org/ Kafka用于构建实时数据管道和流应用程序。它是横向可扩展的,容错的, 镜像地址: http://mirrors.aliyun.com/apache/kafka/2.5.0/ 2.单机 随机选择一台服务器把kafka传上去:node7-2 命令列表: 解压: tar -xzf kafka_2.12-2.5.0.tgz 重命名:mv kafka_2.12-2.5.0 kafka 删除tar包:rm -rf ka...

XIAOMO__的博客 260

单机版和zookeeper集群版创建和订阅kafka消息命令

单机版: ./bin/kafka-console-producer.sh --bootstrap-server 172.31.51.74:9092 --topic student_1 ./bin/kafka-console-consumer.sh --bootstrap-server 172.31.51.74:9092 --topic student_1 --from-beginning 集群版: ./bin/kafka-topics.sh --create --zookeeper 192.168

记录日常开发过程中遇到的一些问题 348

八、Linux二进制安装Kafka集群

Linux二进制安装Kafka集群 部署开机自启

xuyanqiang123的博客 1429

一文搞懂!Kafka集群创建及安装

本文详细介绍了Kafka单机和集群的安装配置过程。主要内容包括:从官网下载Kafka 3.1.0版本,在虚拟机中解压并配置server.properties文件(修改broker.id、监听地址、日志目录和Zookeeper连接等参数);讲解如何将配置好的Kafka打包分发到其他服务器,并修改对应配置;提供了批量启动/停止Kafka服务的脚本;特别强调了启动顺序(先启动Zookeeper集群)和关闭顺序(先关闭Kafka);最后指出Kafka服务日志的位置及查看方法,帮助排查问题。文章还提醒读者注意在Zoo

2401_85182846的博客 680

Kafka 单机和伪分布式集群搭建

感觉自己越来越像个运维了,真的是所有的分布式的中间件基本都搭建了一遍 不得了了。 好 废话少说 , 还是来走Kafka 吧 , 经历了Rocket MQ , Kafka 的搭建真的是简单的不知道多少倍 , RocketMQ 实在 是太麻烦了。 还是老方案 , 先登录官网。 https://archive.apache.org/dist/kafka 可以根据官网的指示文档 进行...

weixin_30918415的博客 169
上一篇: 【Springboot】Springboot自定义Starter
下一篇: 【Kafka】(二)Kafka去Zookeeper化,kraft模式搭建
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值