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集群信息:
在这里插入图片描述

这个是主题信息:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【REST2SQL】06 GO 跨包接口重构代码

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 对所有关系数据的操作都只有CRUD,采用Go 的接口interface{}重构代码…

Large Language Models Paper 分享

论文1: ChatGPTs One-year Anniversary: Are Open-Source Large Language Models Catching up? 简介 2022年11月,OpenAI发布了ChatGPT,这一事件在AI社区甚至全世界引起了轰动。首次,一个基于应用的AI聊天机器人能够提供有帮助、…

属性动画的使用

文章目录 1 概述2 创建属性动画页面3 属性动画参数调整延时播放时间delay的设置onFinish回调函数的使用 4 关闭属性动画页面5 参考 1 概述 属性动画,是最为基础的动画,其功能强大、使用场景多,应用范围较广。常用于如下场景中: …

第九节HarmonyOS 常用基础组件12-TextTimer

1、描述 通过文本显示计时信息并控制其计时器状态的组件。 2、接口 TextTimer(options?: {isCountDown?: boolean, count?: number, controller?: TextTimerController}) 3、参数 参数名称 参数类型 必填 描述 isCountDown boolean 否 是否倒计时。默认值&#…

Kafka与RabbitMQ的区别

消息队列介绍 消息队列(Message Queue)是一种在分布式系统中进行异步通信的机制。它允许一个或多个生产者在发送消息时暂时将消息存储在队列中,然后由一个或多个消费者按顺序读取并处理这些消息。 消息队列具有以下特点: 异步通…

64.网游逆向分析与插件开发-游戏增加自动化助手接口-优化自动助手与游戏焦点的切换

内容来源于:易道云信息技术研究院VIP课 上一个内容:自动化助手UI与游戏菜单的对接-CSDN博客 码云地址(master分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:617ac3477ef18273fb9cc2…

Linux文件系统与日志服务管理

目录 一.Linux文件系统 1.inode表和block (1)inode (2)block 2.查看inode号命令 3.Linux系统文件三种主要时间属性 4.磁盘空间还剩余很多但无法继续创建文件 5.inode大小 二.日志 1.日志保存位置 2.日志文件的分类 &a…

Selenium 学习(0.17)——软件测试之流程图绘制方法

病假5天,出去野20天,成功错过了慕课网上的期末考试。 害,都怪玩乐太开心了…… 反正咱又不指着全靠这个行当来吃饭,错过也就错过了,立的Flag能抢救一下还是要抢救一下吧。【这个其实早都会画了,而且基本也正…

Mac robotframework+pycharm运行suite报错情况:ImportError: No module named request

报错实例: 当前Preferences–>Tool–>External Tools Suite配置,显示使用的python为2.7版本,robotframework安装在当前版本的python中: 但是我pycharm现在的环境配置的python为3.11,当前使用的RF与当前使用的py…

NoSQL概述与Redis入门-redis安装与测试

一、Nosql概述 1、为什么使用Nosql 1、单机Mysql时代 90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题 数据量增加到一定程度,单机数据库就放不下了数据的索引(B Tree),一个…

关于外连接、内连接和子查询的使用(2)

目录 一. 前言 二. 使用外连接、内连接和子查询进行解答 三. 思维导图 一. 前言 在前面我们对外连接、内连接和子查询的使用有了一些了解,今天我们将继续更深入的进行学习。(这里缺少的八个题目在博主的前面博客有解答,大家可以移步前面一…

zabbix-proxy代理安装

zabbix-proxy代理安装 安装zabbix-proxyserver端配置zabbix-proxy配置被监控的agent安装中问题解决监控网络设备JMX和IPMI监控方式 zabbix-proxy的安装,至少需要准备三台机器,一台安装服务端,一台安装agent端,这里就不叙述了&…

OBD汽车

相当于客户端与服务器 诊断设备流程 》》》》诊断服务 OBD很多的定死了 Vme就很灵活 WWH 就是两个的结合 OBD15031 SID PID 可以自己定义一些 一个字节255个 两个有效字节 02 01 0D 5555(随机值)这是请求 两个有效字节 01 OD(请求速…

51单片机之按键和数码管

51单片机之按键和数码管 ✍前言:♐独立按键😀独立按键的原理😀软件实现按键控制LED灯的亮灭 ♐数码管😊数码管显示数字或者字母的原理🐉共阳极数码管🐉共阴极极数码管🐉4位1体数码管 &#x1f6…

大数据StarRocks(六) :Catalog

StarRocks 自 2.3 版本起支持 Catalog(数据目录)功能,实现在一套系统内同时维护内、外部数据,方便您轻松访问并查询存储在各类外部源的数据。 1. 基本概念 内部数据:指保存在 StarRocks 中的数据。 外部数据&#xf…

分布式系统架构设计之分布式消息队列架构解析

分布式消息队列架构是构建在分布式系统之上的消息队列架构,旨在提高高性能、高可用性和可伸缩性。它包括以下架构相关部分: 1、架构优势 分布式消息队列架构的优势主要体现在以下几个方面: 01 高可用性 在分布式消息队列架构中&#xff0…

ARM架构—— Cortex-M3与Cortex-M4特点概述

一、Cortex-M3与Cortex-M4异同点 相同点: 基于ARM-v7-M架构。三级流水线设计。哈佛总线架构,统一的存储器空间:指令和地址总线使用相同的地址空间。32位寻址,支持4GB 存储空间。基于ARM AMBA(高级微控制器总线架构&a…

在docker上运行LCM

目录 1.加载镜像并进入容器 2.安装依赖 3.在docker外部git-clone lcm 4.将get-clone的lcm复制到容器中 5.编译库 6.将可执行文件复制到容器中 7.进入可执行文件 8.编译可执行文件 9.再开一个终端运行程序 10.将以上容器打成镜像并导出 1.加载镜像并进入容器 sudo do…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在TcpConnection 中接收并解析Http请求消息

一、在TcpConnection 中多添加和http协议相关的request和response struct TcpConnection {struct EventLoop* evLoop;struct Channel* channel;struct Buffer* readBuf;struct Buffer* writeBuf;char name[32];// http协议struct HttpRequest* request;struct HttpResponse* r…

LabVIEW在旋转机械故障诊断中的随机共振增强应用

在现代工业自动化领域,准确的故障诊断对于保障机械设备的稳定运行至关重要。传统的故障检测方法往往因噪声干扰而难以捕捉到微弱的故障信号。随着LabVIEW在数据处理和系统集成方面的优势日益凸显,其在旋转机械故障诊断中的应用开始发挥重要作用&#xff…