Linux:【Kafka四】集群介绍与单机搭建
目录
环境简介
一、搭建kafka集群
1.1、复制出两个kafka的配置文件
1.2、修改配置文件中的如下属性
二、启动kafka集群
三、可校验kafka三个节点是否均启动成功
四、查看集群中主题的分区和副本
4.1、新建一个包含了分区和副本的主题
4.2、查看该主题的详细信息
五、分区、副本的二次解释
环境简介
Linux内核:Centos7
Kafka版本:3.5.1
Kafka的安装目录:/usr/local/kafka_2.12-3.5.1
Kafka的bin文件夹的目录:/usr/local/kafka_2.12-3.5.1/bin
Kafka的配置文件夹的目录: /usr/local/kafka_2.12-3.5.1/conf
一、搭建kafka集群
因为资源有限,本人在学习时,是在同一台机器上搭建的kafka集群,操作如下:
1.1、复制出两个kafka的配置文件
server2.properties,server2.properties,如下图:

1.2、修改配置文件中的如下属性
broker.id=0、1、2 -- 标识每个启动的kafka实例的编号
listeners=PLAINTEXT://${broker所在地址IP}:${当前kafka欲使用的端口号},如listeners=PLAINTEXT://192.168.154.128:9092或者9093或者9094
log.dir= **
举个实例:
server.properties中:
broker.id=0listeners=PLAINTEXT://192.168.154.128:9092 -- 192.168.154.128是kafka所在服务器的IPlog.dirs=/usr/local/kafka_2.12-3.5.1/logserver2.propetties中
broker.id=1listeners=PLAINTEXT://192.168.154.128:9093 -- 192.168.154.128是kafka所在服务器的IPlog.dirs=/usr/local/kafka_2.12-3.5.1/log2server3.properties中
broker.id=2listeners=PLAINTEXT://192.168.154.128:9094 -- 192.168.154.128是kafka所在服务器的IPlog.dirs=/usr/local/kafka_2.12-3.5.1/log3
二、启动kafka集群
挨个启动即可(切换到kafka的根路径下执行):
[root@localhost kafka_2.12-3.5.1]# cd /usr/local/kafka_2.12-3.5.1/[root@localhost kafka_2.12-3.5.1]# ./kafka-server-start.sh -daemon ./server.properties[root@localhost kafka_2.12-3.5.1]# ./kafka-server-start.sh -daemon ./server2.properties[root@localhost kafka_2.12-3.5.1]# ./kafka-server-start.sh -daemon ./server3.properties
三、可校验kafka三个节点是否均启动成功
cd到zookeeper中查看
[root@localhost bin]# cd /usr/local/apache-zookeeper-3.8.2/bin[root@localhost bin]# ./zkCli.sh[zk: localhost:2181(CONNECTED) 0] ls /[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper][zk: localhost:2181(CONNECTED) 2] ls /brokers[ids, seqid, topics][zk: localhost:2181(CONNECTED) 3] ls /brokers/ids[0,1,2] //说明启动了三个节点[zk: localhost:2181(CONNECTED) 4]
四、查看集群中主题的分区和副本
4.1、新建一个包含了分区和副本的主题
[root@localhost kafka_2.12-3.5.1]# ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --replication-factor 3 --partitions 2 --topic topic0921
4.2、查看该主题的详细信息
[root@localhost kafka_2.12-3.5.1]# ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic topic0921
会展示如下结果:

说明:
Topic: 主题名称
Partition:分区编号
Leader: 分区的Leader的broker编号。副本里面的Leard来接收消息,其他follower通过poll的形式同步消息
Replicas: 当前分区的副本所在哪些broker实例上(对应kafka实例配置文件中的kroker.id)
Isr: 可以同步的broker节点 和 已同步的broker节点。换句话说,存放的是:当前分区的副本中:Leader节点、以及可正常同步数据,且已经同步了数据的follower节点
五、分区、副本的二次解释
基础概念的讲解,请参考:Linux:【Kafka三】组件介绍
下面画图解释:

分区:相当于是对消息的物理分割,一个消息,只能存在于一个分区中。多个分区可理解为消息的多线程任务。
副本:每个分区都可以在集团的broker中创建副本,用以对分区中消息的备份。作为副本的broker上,在日志文件中,会同时产生备份了分区的文件:
cd到broker1的日志文件中
[root@localhost log2]# cd /usr/local/kafka_2.12-3.5.1/log2/[root@localhost log2]# ll-rw-r--r--. 1 root root 0 9月 19 18:21 cleaner-offset-checkpoint
-rw-r--r--. 1 root root 4 10月 13 10:54 log-start-offset-checkpoint
-rw-r--r--. 1 root root 88 9月 21 17:21 meta.properties
-rw-r--r--. 1 root root 32 10月 13 10:54 recovery-point-offset-checkpoint
-rw-r--r--. 1 root root 32 10月 13 10:54 replication-offset-checkpoint
drwxr-xr-x. 2 root root 167 9月 21 17:27 topic0921-0 # 主题第一个分区的备份文件
drwxr-xr-x. 2 root root 167 9月 21 17:27 topic0921-1 # 主题第二个分区的备份文件
相关文章:
Linux:【Kafka四】集群介绍与单机搭建
目录 环境简介 一、搭建kafka集群 1.1、复制出两个kafka的配置文件 1.2、修改配置文件中的如下属性 二、启动kafka集群 三、可校验kafka三个节点是否均启动成功 四、查看集群中主题的分区和副本 4.1、新建一个包含了分区和副本的主题 4.2、查看该主题的详细信息 五、…...
代码随想录算法训练营Day52|动态规划11
代码随想录算法训练营Day52|动态规划11 文章目录 代码随想录算法训练营Day52|动态规划11一、123.买卖股票的最佳时机III二、188.买卖股票的最佳时机IV 买卖股票 难 一、123.买卖股票的最佳时机III class Solution {public int maxProfit(int[] prices) {int[] dp new int[4]…...
Android渲染系列之原理概述篇
屏幕硬件 渲染离不开屏幕,Android中的屏幕碎片化比较严重,尺寸大小不一,材质也是屏幕重要的因素。 目前智能手机主流的屏幕可分为两大类即液晶显示器; LCD (Liquid Crystal Display) 液晶显示器OLED (Organic Light Emitting Diode…...
类图 UML从入门到放弃系列之二
1.劝退说明(开个玩笑) UML包含有许多小组件、修饰符以及其他小巧复杂的东西。UML的内容相当庞大,以至于你可以花大量的时间把自己修成一个UML语言律师,并能够完成所有律师能够完成的工作:编写出所有人都无法理解的文档。现在流行的敏捷开发倡…...
诊断用抗原抗体——博迈伦
抗原抗体诊断是一种常见的临床诊断方法,它通过检测人体内特定抗原或抗体的存在来确定某种疾病或感染的存在与否。这种诊断方法可以用于许多不同的疾病和感染的检测,如传染病、自身免疫病、肿瘤等。 抗原抗体诊断的原理是基于抗原与抗体之间的特异性反应。…...
156 - Ananagrams (UVA)
题目链接如下: Online Judge 我的代码如下: #include <iostream> #include <string> #include <vector> #include <map> #include <algorithm> // #define debugint main(){#ifdef debugfreopen("0.txt", &q…...
vue3入门
一. Vue3的优势 二. 使用create-vue搭建Vue3项目 2.1 认识create-vue create-vue是Vue官方新的脚手架工具,底层切换到了 vite (下一代前端工具链),为开发提供极速响应 2.2 使用create-vue创建项目 前置条件 - 已安装16.0或更高版…...
上机实验二 设计单循环链表 西安石油大学数据结构
实验名称:设计单循环链表 (1)实验目的:掌握线性表的链式存储结构;掌握单循环链表及其基本操作的实现。 (2)主要内容:实现单循环链表的初始化、求数据元素个数、插入、删除、取数据元素等操作;用插入法建立带头结点的单循环链表;设计一个测试主函数验证…...
小谈设计模式(28)—解释器模式
小谈设计模式(28)—解释器模式 专栏介绍专栏地址专栏介绍 解释器模式角色分析抽象表达式(Abstract Expression)终结符表达式(Terminal Expression)非终结符表达式(Non-terminal Expression&…...
Access denied for user ‘root‘@‘xxx‘ (using password: YES)
Access denied for user rootxxx (using password: YES) 这表示MySQL服务端拒绝来自xxx主机的root用户登录,尽管我检查了一下,root的用户名和密码都没错,还是拒绝。 解决方案: select user,host from mysql.user; 执行发现&am…...
对象与成员函数指针 function+bind
functionbind的理解 function模板类的构造函数,把对象与成员函数绑定,重载了(),利用对象调用成员函数 bind模板函数,把对象与成员函数绑定,返回function对象,成员函数传参代码链接点…...
如何在 PyTorch 中冻结模型权重以进行迁移学习:分步教程
一、说明 迁移学习是一种机器学习技术,其中预先训练的模型适用于新的但类似的问题。迁移学习的关键步骤之一是能够冻结预训练模型的层,以便在训练期间仅更新网络的某些部分。当您想要保留预训练模型已经学习的特征时,冻结至关重要。在本教程中…...
代码随想录算法训练营第六十二、六十三天 | 单调栈 part 2 | 503.下一个更大元素II 、42. 接雨水、84.柱状图中最大的矩形
目录 503.下一个更大元素II思路代码 42. 接雨水思路一 双指针思路二 单调栈代码 84.柱状图中最大的矩形思路一 双指针思路二 单调栈代码 503.下一个更大元素II Leetcode 思路 将数组乘2来遍历即可,就是加长版的每日温度。 但是处理起来会有细节,如果…...
c#设计模式-行为型模式 之 迭代器模式
🚀简介 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口…...
SSM整合RabbitMQ,Spring4.x整合RabbitMQ
SSM整合RabbitMQ目录 前言版本实现目录参考pom.xml依赖rabbitmq.properties配置文件spring-rabbitmq.xmlspring-mvc.xml或applicationContext.xmlrabbitmq目录下MessageConsumer.javaMessageConsumer2.javaMessageProducer.javaMessageConstant.java 测试调用 扩展消息重发方式…...
【2023研电赛】商业计划书赛道上海市一等奖:基于双矢量优化谐波预测控制的MMC-PET光伏储能系统
该作品参与极术社区组织的2023研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~ 团队介绍 参赛单位:上海理工大学 参赛队伍:Dream explorers 参赛队员:吕哲 李天皓 赵安杰 项目意义…...
minio桶命名规则
一、背景 今天做项目需要上传图片到minio,上传失败,查看错误是桶未创建成功。 minio桶的创建具有自己的命名规则,不符合则无法创建。 二、命名规则 1、存储桶名称的长度必须介于 3(最小)到 63(最大&…...
【教学类-35-04】学号+姓名+班级(中3班)学号字帖(A4竖版2份 竖版长条)
图片展示: 背景需求: 2022年9-2023年1月我去过小3班带班,但是没有在这个班级投放过学具,本周五是我在本学期第一次带中3班,所以提供了一套学号描字帖。先让我把孩子的名字和脸混个眼熟。 之前试过一页两套名字的纸张切割方法有:…...
什么叫AI自动直播?
AI自动直播是一种使用人工智能技术进行自动直播的程序或系统。 它可以自动录制视频,并在直播平台上进行展示,以吸引观众并提高品牌知名度。AI自动直播通常需要使用特定的软件或平台来实现,并且需要具备一定的编程和人工智能知识。 AI自动直…...
LLaMA Adapter和LLaMA Adapter V2
LLaMA Adapter论文地址: https://arxiv.org/pdf/2303.16199.pdf LLaMA Adapter V2论文地址: https://arxiv.org/pdf/2304.15010.pdf LLaMA Adapter效果展示地址: LLaMA Adapter 双语多模态通用模型 为你写诗 - 知乎 LLaMA Adapter GitH…...
端侧AI算力瓶颈与优化企业格局解析
一、引言:端侧AI的发展困境与研究核心1.1 端侧AI的产业价值与普及现状端侧AI作为边缘计算的核心落地形态,正深度渗透工业制造、智能终端、车载电子、安防监控等领域。据IDC数据,2025年全球端侧AI芯片市场规模突破180亿美元,工业端…...
从STM32到RISC-V:如何快速将你的4P OLED驱动移植到CH32V307上
从STM32到RISC-V:如何快速将你的4P OLED驱动移植到CH32V307上 对于习惯了STM32标准库开发的工程师来说,第一次接触RISC-V架构的CH32V307系列时,最迫切的需求往往是如何快速复用现有的硬件驱动代码。本文将聚焦4P OLED屏幕的驱动移植ÿ…...
别再折腾gcc版本了!Ubuntu 20.04下用Docker一键搞定OLLVM编译环境
用Docker容器化技术快速搭建OLLVM混淆编译环境 在逆向工程和移动安全研究领域,代码混淆是一项基础而重要的技术。传统搭建OLLVM环境需要处理复杂的依赖关系、版本冲突等问题,往往让初学者望而却步。本文将介绍如何利用Docker技术,在Ubuntu 20…...
搭建企业AI知识库:6步从0到1,避免百万投入打水漂!揭秘大模型落地成败关键!
企业AI Agent的成功关键在于高质量的私有知识库。文章强调了知识库需满足真实权威、时效动态、可控安全、语义完整、持续进化五点。搭建过程分为爬虫采集、数据清洗、文档切分、Embedding生成、向量存储和RAG检索优化六个阶段,其中前两阶段尤为重要。文章还详细阐述…...
iPhone 14上跑出0.8ms延迟!SwiftFormer加性注意力实战:从论文到移动端部署避坑指南
iPhone 14上实现0.8ms延迟:SwiftFormer移动端部署全流程实战 当我在iPhone 14 Pro上首次看到SwiftFormer-L1模型以0.8毫秒完成图像分类时,手中的咖啡杯差点滑落——这个速度已经快于人眼单次眨动的1/10时长。作为长期奋战在移动端AI部署一线的工程师&am…...
别再只抄datasheet了!TPS5430降压电路PCB布局的5个实战避坑点(附15V转12V/负压案例)
TPS5430降压电路PCB布局的5个实战避坑指南:从理论到15V转12V/负压案例 在硬件设计领域,TPS5430作为一款经典的Buck型DC-DC转换芯片,其性能表现与PCB布局质量密切相关。许多工程师虽然能正确绘制原理图,却在PCB实现阶段因忽视关键…...
长波双色InAs/GaSb超晶格红外探测器芯片:从材料设计到焦平面集成
1. 项目概述:从“双色”到“芯片”的技术跨越在红外探测领域,追求“看得更清、看得更远、看得更准”是永恒的主题。我们这次要聊的“长/长波双色InAs/GaSb超晶格焦平面探测器芯片”,听起来名字很长很专业,但它本质上解决的是一个非…...
告别终端!为OpenWrt打造Web版脚本管家:Luci插件开发实战与全功能解析
1. 为什么我们需要Web版脚本管家? 每次在OpenWrt上折腾脚本都要打开终端,这对新手来说简直是噩梦。记得我第一次给路由器写脚本时,光是学会用vi编辑器就花了半小时,保存退出时还差点把系统搞崩。后来发现用WinSCP上传脚本还要改权…...
告别虚拟机卡顿:在Ubuntu 18.04上为ARM板交叉编译Qt5.12.9的完整配置流程
突破虚拟机性能瓶颈:Ubuntu 18.04下高效交叉编译Qt5.12.9的工程实践 当你在40GB磁盘空间的Ubuntu虚拟机上尝试编译Qt5.12.9时,解压后的2.8GB源码目录和漫长的编译等待时间可能已经让你抓狂。这不是个例——嵌入式开发工程师经常面临这样的困境࿱…...
MIT Cheetah-Software编译手记:搞定Qt5.10.0路径、LCM依赖与那些诡异的C++报错
MIT Cheetah-Software编译实战:Qt路径配置、LCM依赖与C报错深度解析 1. 环境准备与依赖管理 在Ubuntu 20.04环境下编译MIT Cheetah-Software,首先需要确保系统基础环境配置正确。不同于普通开源项目,这个四足机器狗的控制系统对Qt版本、LCM消…...
