【Kafka】Kafka基础概念笔记

news2024/11/26 8:56:59

【Kafka】Kafka基础概念笔记

文章目录

  • 【Kafka】Kafka基础概念笔记
    • 1. 两种模式
      • 1.1 点对点模式
      • 1.2 发布/订阅模式
    • 2. 基础架构
    • 3. Topic命令行操作
      • 3.1 查看 Topic 操作
      • 3.2 创建 Topic
      • 3.3 查看所有 Topic
      • 3.4 查看 Topic 的详情
      • 3.5 修改分区数
      • 3.6 删除 Topic
    • 4. 生产者命令行操作
      • 4.1 生产者命令行操作
      • 4.2 给 topic 发送消息
    • 5. 消费者命令行操作
      • 5.1 查看操作消费者命令参数
      • 5.2 消费 topic 中的消息

1. 两种模式

Kafka作为消息队列,有两种模式:

  1. 点对点模式
  2. 发布/订阅模式

1.1 点对点模式

特点:

  • 消费者主动拉取数据,消息收到后清除消息

image-20230705110531581


1.2 发布/订阅模式

  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据

image-20230705110722828


2. 基础架构

Kafka的基础架构:

  1. 为方便扩展,并提高吞吐量,一个topic分为多个partition(分区)
  2. 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费,一个分区只能由一个组内消费者消费,避免重复消费
  3. 为提高可用性,为每个partition增加若干副本
  4. Zookeeper中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK

image-20230705111049119

  • Consumer Group(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,为避免详消息的重复消费,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • Broker:一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
  • Topic:可以理解为一个队列,生产者和消费者面向的都是一个topic
  • Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker (即服务器上),一个topic可以分为多个 partition,每个 partition 是一个有序的队列
  • Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个 Follower。
  • Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。
  • Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和 Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

3. Topic命令行操作

3.1 查看 Topic 操作

①查看操作Topic命令参数

#在kafka的目录下
bin/kafka-topics.sh

输入该命令行后,控制台列出所有的参数及含义:

image-20230705232832770

总结如下:

image-20230705232404846


3.2 创建 Topic

②创建一个名为first的topic,要求分区数为1,集群有3个节点,所以分区副本设置为3

bin/kafka-topics.sh --bootstrap-server node1:9092 --create --partitions 1 --replication-factor 3 --topic first

3.3 查看所有 Topic

③查看当前服务器中所有的topic

bin/kafka-topics.sh --bootstrap-server node1:9092 --list

3.4 查看 Topic 的详情

④查看 first 主题的详情

bin/kafka-topics.sh --bootstrap-server node1:9092 --describe --topic first

image-20230705233257193

  • Replicas:1,2,0 表示副本分别存在三个节点中
  • Leader:1 表示Leader副本存储在代号为1的节点中,其余两个存的是Follower副本
  • Isr:1,2,0 表示同步副本,follower副本同步leader副本的数据,ISR是Kafka中用于保证数据一致性和可靠性的副本集合

3.5 修改分区数

⑤注意:分区数只能增加不能减少

bin/kafka-topics.sh --bootstrap-server node1:9092 --alter --partitions 3 --topic first

修改之后再次查看 first 主题的详情:

image-20230705233811497


3.6 删除 Topic

⑥删除 first 主题

bin/kafka-topics.sh --bootstrap-server node1:9092 --delete --topic first

4. 生产者命令行操作

4.1 生产者命令行操作

查看操作生产者命令参数

bin/kafka-console-producer.sh

image-20230706205550681

image-20230706205534461


4.2 给 topic 发送消息

bin/kafka-console-producer.sh --bootstrap-server node1:9092 --topic first

image-20230706210323573

向 first 主题发送了一条 hello world 消息。


5. 消费者命令行操作

5.1 查看操作消费者命令参数

bin/kafka-console-consumer.sh

image-20230706210917759

image-20230706210940712

image-20230706210834768


5.2 消费 topic 中的消息

消费 first 主题中的消息

bin/kafka-console.consumer.sh --bootstrap-server node1:9092 --topic first

image-20230706211322198

我们发现光标一直在闪,却没有收到任何消息,那是因为kafka默认读取consumer脚本起来之后的消息,想要读取所有数据(包含历史数据)就要加上 --from-beginning 参数

bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --from-beginning --topic first

image-20230706211724910

这样就把历史数据也给读出来了。


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

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

相关文章

统一参数校验

使用注解,统一参数校验 我们在实际的开发过程中经常会遇到需要对参数进行校验的情况,比如在需要用户输入手机号的时候他是不是真的输入了一个合法的手机号,在需要用户输入一个邮箱的时候他是不是真的输入了一个合法的邮箱,用户输…

可以在手机做笔记的app哪一款比较好用?

在这个信息爆炸的时代,人们需要快速有效地记录和整理信息。随着智能手机的普及,越来越多的人选择在手机上做笔记,相对于纸笔记录,手机笔记app的好处更多。 一款优秀的笔记app可以帮助我们进行内容整理,我们可以将笔记…

Mysql8.0下载及安装步骤完整教程

1.首先去官网下载Mysql8.0压缩包 官网地址:MySQL :: Download MySQL Community Server 文件下载后解压到D盘,具体路径可以根据自己习惯。 我解压的具体位置:D:\Program Files 2.创建配置文件my.ini 在和bin同级目录创建文件 my.ini&#x…

FuLLGC模拟及结果流程

内存泄漏、内存溢出、CPU飙升三者之间的关系 内存泄露可能会导致内存溢出。 内存溢出会抛出异常,内存泄露不会抛出异常,大多数时候程序看起来是正常运行的。 内存泄露的程序,JVM频繁进行FullGC尝试释放内存空间,进而会导致CPU飙升…

能流畅运行OctaneRender 的硬件建议

OctaneRender 是一个完全基于 GPU 的渲染引擎。这意味着系统中的显卡(或 GPU)会影响渲染完成所需的时间,而不是 CPU。 处理器(CPU) 在 OctaneRender 以及大多数其他基于 GPU 的引擎中,CPU 在渲染场景的过程…

Flutter流式组件Wrap

Wrap组件类似Row组件都是横向依次排列,唯一的区别就是Wrap能自动换行。 主要代码: Wrap(spacing: 10, //左右间距runSpacing: 10, //上下间距// direction: Axis.vertical,//主轴的方向,默认横向// alignment: WrapAlignment.spaceBetween, …

【Element】Tree 树形控件

使用el-tree完成下拉框单选功能 <label class"handle-label">部门:</label> <el-select v-model"bm" ref"selectTree" class"wd150" placeholder"请选择" clearable clear"handleTreeClear">…

Aop基于xml和注解应用

基于 XML 的 AOP 开发 问题1&#xff1a;在通知方法中如何定义切入点表达式&#xff1f; 问题2&#xff1a;如何配置切面&#xff1f; 问题3&#xff1a;在配置类上如何开启AOP注解功能&#xff1f; 1.1 快速入门 ①导入 AOP 相关坐标 ②创建目标接口和目标类&#xff08…

linux环境安装docker+confluence

前言 本次安装的环境 centos 7.6 一、安装docker 1、yum安装docker 更新yum yum update yum安装docker yum install docker 2、开启镜像加速 mkdir /etc/docker vi /etc/docker/daemon.json 3、启动docker 查看docker版本 docker --version 启动docker service docker s…

ps 2023(24.7beta) mac

Photoshop 2023 beta,一款专业图像处理软件&#xff0c;它主要用于图像编辑、合成和设计等方面。Photoshop beta创新式填充是Adobe Photoshop的一项新功能&#xff0c;它可以自动识别和删除照片中的对象并用周围的图像填充空白部分。这个新功能使用了人工智能和机器学习技术&am…

直线模组在新能源汽车中的应用

发展新能源汽车是我国从汽车大国迈向汽车强国的必由之路&#xff0c;是应对气候变化、推动绿色发展的战略举措&#xff0c;新能源汽车免征车辆购置税政策的延续&#xff0c;能够稳定促进新能源汽车发展&#xff0c;加速新能源车对于燃油车的全面替代。 直线模组技术的飞速发展&…

Doris实战篇-准实时数仓架构设计与实现

前言 这是一篇Doris数据仓库架构随笔&#xff0c;会应用到一些优秀的用户案例和自己的见解&#xff0c;欢迎大家留言评论。 前景回顾 下图是之前文章有提到过的数仓架构&#xff0c;这种架构的好处是实时强&#xff0c;数据产生以后&#xff0c;直接可以消费到&#xff0c;而…

【网络安全】带你了解【黑客】

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 引言 1. 定义 2. 分类 a. 白帽黑客&#xff08;White Hat Hacker&#xff09; b. 黑帽黑客&#xff08;Black Hat Hacker&#xff09; c. 灰帽黑客&#xff08;Gray Hat Hacker…

【Docker】Docker中 AUFS、BTRFS、ZFS、存储池概念的详细讲解

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

企业如何搭建一个出色的帮助中心?做好这6点很重要!

伴随着互联网的不断普及和快速发展&#xff0c;我们的生活已经发生了翻天覆地的改变&#xff0c;企业的商业模式也不断地适应着时代。为了提供给用户更加便捷的服务&#xff0c;逐渐地有更多企业将业务转移到线上。比如&#xff0c;餐馆为了解决点餐难题&#xff0c;就会上线点…

LINUX IOWAIT 是怎么回事,和数据库性能有关吗? (翻译)

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

Redis线程模式

目录 redis6.0之前&#xff1a;单Reactor单线程 问&#xff1a;为什么Redis要选择单线程&#xff1f;&#xff1f;&#xff1f; redis6.0后引入多线程IO redis6.0之前&#xff1a;单Reactor单线程 大致工作流程&#xff1a; 首先&#xff0c;调用 epoll_create() 创建一个 …

剑指 Offer 17: 打印从1到最大的n位数

首先&#xff0c;List类型的要么存Integer&#xff0c;要么存int[]&#xff0c;并且后面实现是用ArrayList&#xff01; 这边的i和j应该从1开始&#xff0c;因为0不能做高位也不能做位数。 这里注意&#xff0c;1是List的实现是用ArrayList&#xff0c;2是从1开始&#xff08;1…

C++的引用 拷贝赋值和引用赋值

&#x1f4af; 博客内容&#xff1a;C的引用 拷贝赋值和引用赋值 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&#…

排名前十的开放式蓝牙耳机,哪个蓝牙耳机好一点?

当前耳机最大的受众群体就是年轻人&#xff0c;最怕自己吵到别人&#xff0c;而且更注重自己的舒适度&#xff0c;所以开放式耳机自从出现以来就深受年轻人喜爱&#xff0c;这种耳机用起来很方便&#xff0c;而且振动感不强&#xff0c;不用进入耳道&#xff0c;拥挤耳朵。开放…