04、Kafka ------ 各个功能的作用解释(Cluster、集群、Broker、位移主题、复制因子、领导者副本、主题)
目录
- 启动命令:
- CMAK的用法
- ★ 在CMAK中添加 Cluster
- ★ 在CMAK中查看指定集群
- ★ 在CMAK中查看 Broker
- ★ 位移主题
- ★ 复制因子
- ★ 领导者副本和追随者副本
- ★ 查看主题
启动命令:
1、启动 zookeeper 服务器端
小黑窗输入命令: zkServer
2、启动 zookeeper 的命令行客户端工具
小黑窗输入命令:zkCli -server 127.0.0.1:2181
3、启动 Kafka 服务器:
第1个kafka服务器,也就是第1个节点:端口9092
kafka-server-start E:/install/kafka_2.13-3.6.1/config/server.properties
第2个kafka服务器,也就是第2个节点:端口9093
kafka-server-start E:/install/kafka_2.13-3.6.1/config/server-1.properties
第3个kafka服务器,也就是第3个节点:端口9094
kafka-server-start E:/install/kafka_2.13-3.6.1/config/server-2.properties
4、打开小黑窗,运行如下命令来启动CMAK:
E:/cmak/bin/cmak.bat
5、打开CMAK图形界面
http://localhost:9000/
CMAK的用法
如图,安装完,小黑窗输入 E:\cmak\bin\cmak.bat 命令启动这个cmak之后,发现什么都没有。
http://localhost:9000/

接下来,演示通过cmak来管理Kafka
★ 在CMAK中添加 Cluster
启动cmak.bat命令后,使用浏览器访问“http://localhost:9000/”即可进入CMAK管理界面
单击管理页面上方的“Cluster”下拉菜单展开的“Add Cluster”菜单项,即可打开添加Cluster的界面。
Kafka 使用 ZooKeerper 管理集群,因此添加集群的关键就是在Cluster ZooKeeper Hosts中输入ZooKeeper的主机地址和端口。
集群名和Kafka版本并不关键
点击这里添加kafka集群:

输入这三个信息即可。点击save保存即可,然后再去查看创建出来的集群

★ 在CMAK中查看指定集群
查看集群可看到如下信息:
- ZooKeeper的地址和Kafka版本
- 集群包含多少个主题和多少个Broker(节点)
▲ Kafka 的 topic 和 JMS 的 topic 是完全不同的,Kafka 的 topic 是消息的逻辑容器。
——换而言之,Kafka 的 topic 是用来装消息的。

★ 在CMAK中查看 Broker
通过页面上方的“Brokers”链接,即可进入Broker列表页面。
通过Broker列表页面中任一Broker的id链接,即可查看该Broker的详细信息,可看到该Broker的
- ID
- 主题数
- 分区数
- 领导者分区数
该主题的复制因子为1,这意味着每个分区仅有一个副本,因此该副本只能是领导者分区,只不过它没有追随者分区。

点击broker的id进入这里:

启动这个kafka节点,对应的就是这个brokers

主题的详细信息:
这个是kafka内部自己建立的主题,叫位移主题,

点开每个kafka节点,加起来一共有50个分区。

★ 位移主题
Kafka默认就有一个名为“__consumer_offsets”的主题,该主题是Kafka自动创建的内部主题:位移主题。
它用于保存Kafka内部的位移信息,一般不建议手动管理它,让系统自己管理它是最好的。
位移主题的消息格式也是Kafka自定义的,用户不能修改。
开发者不应该向位移主题写入消息,否则一旦写入的消息格式不满足Kafka的定义,那就会导致Broker崩溃。
加深理解:
比如rocketmq、rabbitmq这些消息中间件,它们的消息是放在消息队列里面的,如果消息被消费完后,该消息就会被移除该消息队列。
而 Kafka 是一个数据流平台,kafka 是把消息存放在分区(或者说主题,主题包含分区)里面的,当消息被消费完,该消息也不会被移除掉。
因为消费完的消息没有被移除掉,所以就需要这个内部主题–>【位移主题】这个机制来记录我们消息已经消费到哪个位置了。它存储kafka内部相关的位移信息。

这个位移主题不需要我们做任何操作。了解就好。

★ 复制因子
——控制主题内分区副本的数量。
主题由多个分区组成。
复制因子控制主题内各分区的副本的数量,复制因子为1,表明每个分区的副本数量为1——也就是所有分区仅有1个副本。
复制因子必须大于或等于1,这意味着每个分区至少要有一个副本。
Kafka的副本机制(也可称为备份机制)仅提供数据冗余功能。

★ 领导者副本和追随者副本
比如将某个主题的复制因子设为3,那意味着该主题内每个分区都有3个副本,
这3个副本中有1个是“领导者(leader)副本”,该领导者副本负责与客户端交互(接受客户端读、写操作),
另外2个是“追随者(follower)副本”,追随者副本完全不能与客户端交互,
追随者副本仅仅只是作为“领导者副本”的后备(自动与领导者副本的数据保持同步、但会有一定的滞后性)。
领导者副本与追随者副本并不位于同一个Broker上,当“领导者副本”挂掉之后, Kafka会从追随者副本中重新选一个(专业术语叫选举:elect)作为新的“领导者副本”。
若将某个主题的复制因子设为1,那意味着该主题内每个分区只有1个副本,该分区副本也就是领导者副本。
就像是公司的技术部,只有我一个人,那么部门领导者是我,追随者也是我。
=======================
领导者分区有几个追随者分区,取决于我们设置的复制因子有多少,如果复制因子是3,那么就意味着每个领导者分区 2个 追随者分区。
复制因子是3 ,就表明有3个分区,其中1个是领导者分区,2个是追随者分区。
★ 查看主题
Kafka会将主题内的分区“分摊”到不同 broker 节点上,从而让不同节点能并行地向客户端提供服务
——这是Kafka性能优秀的关键。
查看主题可看到如下信息:
-
包含多少分区
-
分区分布在几个Broker上
-
分布率多少:从提升性能角度来看,肯定是分布率越高越好,分布率越好就意味着更多的节点可以一起为该主题对外提供服务。
-
单击“Add Partition”可添加分区
-
单击“Generate Partition Assignments” 和 “Run Partition Assignments”按钮可对分区进行重新分布。
加深理解:
一个程序从一个主题获取消息,这个主题只是一个逻辑的东西,这个主题下面还有50个分区,这些分区假如分布到10个broker节点里面去,那么我们从这个主题获取消息的时候,Kafka 内部会用负载均衡的方式依次自动的从这10个节点里面去提取消息给我们访问。
Kafka的 broker 节点是可以无限增加的,这种机制可以很方便的扩充kafka 容量。
如果分区访问速度慢了,性能降低的话,也可以修改分区的数量
分区跟主题是很重要的一个概念,它们对kafka的性能有关键性的影响。

可以修改分区之类的配置。

这个是kafka集群信息:

这个是主题信息:

相关文章:
04、Kafka ------ 各个功能的作用解释(Cluster、集群、Broker、位移主题、复制因子、领导者副本、主题)
目录 启动命令:CMAK的用法★ 在CMAK中添加 Cluster★ 在CMAK中查看指定集群★ 在CMAK中查看 Broker★ 位移主题★ 复制因子★ 领导者副本和追随者副本★ 查看主题 启动命令: 1、启动 zookeeper 服务器端 小黑窗输入命令: zkServer 2、启动 …...
1、C语言:数据类型/运算符与表达式
数据类型/运算符/表达式 1.数据类型与长度2.常量3.声明4. 运算符5. 表达式 1.数据类型与长度 基本数据类型 类型说明char字符型,占用一个字节,可以存放本地字符集中的一个字符int整型,通常反映了所有机器中整数的最自然长度float单精度浮点…...
[ffmpeg系列 03] 文件、流地址(视频)解码为YUV
一 代码 ffmpeg版本5.1.2,dll是:ffmpeg-5.1.2-full_build-shared。x64的。 文件、流地址对使用者来说是一样。 流地址(RTMP、HTTP-FLV、RTSP等):信令完成后,才进行音视频传输。信令包括音视频格式、参数等协商。 接流的在实际…...
python算法每日一练:连续子数组的最大和
这是一道关于动态规划的算法题: 题目描述: 给定一个整数数组 nums,请找出该数组中连续子数组的最大和,并返回这个最大和。 示例: 输入:[-2, 1, -3, 4, -1, 2, 1, -5, 4] 输出:6 解释ÿ…...
一个vue3的tree组件
https://download.csdn.net/download/weixin_41012767/88709466...
新手练习项目 4:简易2048游戏的实现(C++)
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder) 目录 一、效果图二、代码(带注释)三、说明 一、效果图 二、代码(带…...
2023年度总结:技术沉淀、持续学习
2023年度总结:技术沉淀、持续学习 一、引言 今年是我毕业的第二个年头,也是完整的一年,到了做年终总结的时候了 这一年谈了女朋友,学习了不少技术,是充实且美好的一年! 首先先看年初定的小目标…...
Unity 利用UGUI之Slider制作进度条
在Unity中使用Slider和Text组件可以制作简单的进度条。 首先在场景中右键->UI->Slider,新建一个Slider组件: 同样方法新建一个Text组件,最终如图: 创建一个进度模拟脚本,Slider_Progressbar.cs using System.C…...
OCS2 入门教程(四)- 机器人示例
系列文章目录 前言 OCS2 包含多个机器人示例。我们在此简要讨论每个示例的主要特点。 System State Dim. Input Dim. Constrained Caching Double Integrator 2 1 No No Cartpole 4 1 Yes No Ballbot 10 3 No No Quadrotor 12 4 No No Mobile Manipul…...
FreeRTOS学习第6篇–任务状态挂起恢复删除等操作
目录 FreeRTOS学习第6篇--任务状态挂起恢复删除等操作任务的状态设计实验IRReceiver_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第6篇–任务状态挂起恢复删除等操作 本文目标:学习与使用FreeRTOS中的几项操作,有挂起恢复删除等操作…...
BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)
目录 一、什么是BLE Mesh Access Layer访问层? 二、Access payload 2.1 Opcode 三、Access layer behavior 3.1 Access layer发送消息的流程 3.2 Access layer接收消息的流程 3.3 Unacknowledged and acknowledged messages 3.3.1 Unacknowledged message …...
Netlink 通信机制
文章目录 前言一、Netlink 介绍二、示例代码参考资料 前言 一、Netlink 介绍 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。 在Linux 内核中,使用netlink 进行应用与内核通信的应用有…...
2024.1.8每日一题
LeetCode 回旋镖的数量 447. 回旋镖的数量 - 力扣(LeetCode) 题目描述 给定平面上 n 对 互不相同 的点 points ,其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的欧式…...
看了致远OA的表单设计后的思考
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…...
mmdetection训练自己的数据集
mmdetection训练自己的数据集 这里写目录标题 mmdetection训练自己的数据集一: 环境搭建二:数据集格式转换(yolo转coco格式)yolo数据集格式coco数据集格式yolo转coco数据集格式yolo转coco数据集格式的代码 三: 训练dataset数据文件配置config…...
MySQL取出N列里最大or最小的一个数据
如题,现在有3列,都是数字类型,要取出这3列里最大或最小的的一个数字 -- N列取最小 SELECT LEAST(temperature_a,temperature_b,temperature_c) min FROM infrared_heat-- N列取最大 SELECT GREATEST(temperature_a,temperature_b,temperat…...
编写.NET的Dockerfile文件构建镜像
创建一个WebApi项目,并且创建一个Dockerfile空文件,添加以下代码,7.0代表的你项目使用的SDK的版本,构建的时候也需要选择好指定的镜像tag FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443F…...
【C语言】浙大版C语言程序设计(第三版) 练习7-4 找出不是两个数组共有的元素
前言 最近在学习浙大版的《C语言程序设计》(第三版)教材,同步在PTA平台上做对应的练习题。这道练习题花了比较长的时间,于是就写篇博文记录一下我的算法和代码。 2024.01.03 题目 练习7-4 找出不是两个数组共有的元素 作者 张彤…...
7.27 SpringBoot项目实战 之 整合Swagger
文章目录 前言一、Maven依赖二、编写Swagger配置类三、编写接口配置3.1 控制器Controller 配置描述3.2 接口API 配置描述3.3 参数配置描述3.4 忽略API四、全局参数配置五、启用增强功能六、调试前言 在我们实现了那么多API以后,进入前后端联调阶段,需要给前端同学提供接口文…...
创建第一个SpringMVC项目,入手必看!
文章目录 创建第一个SpringMVC项目,入手必看!1、新建一个maven空项目,在pom.xml中设置打包为war之前,右击项目添加web框架2、如果点击右键没有添加框架或者右击进去后没有web框架,点击左上角file然后进入项目结构在模块…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
