Kafka重点笔记

news/2024/11/20 23:36:56/

Kafka重点笔记

默认端口号 9092

kafka_3">一、kafka将数据保存在哪里?

kafka是将数据保存在磁盘。

二、离线计算、实时计算

离线计算:T+1模式。处理的数据是静态数据,有界限,知道什么时候开始也知道什么时候结束。

实时计算:以事件为驱动,低延迟,高效率。没有界限,知道什么时候开始,但是不知道什么时候结束。

kafka_13">三、kafka分区角色

kafka当中,分区角色一共分为两类:一类是leader;一类是follower。

无论你是生产者还是消费者,只跟分区leader进行通信。

四、follower当中的数据从哪来?

kafka当中,无论是生产者还是消费者,只和分区leader进行通信,也就是生产者生产数据只进入到分区leader当中,分区follower当中的数据是去分区leader当中进行同步;同理,消费者消费消息也只去leader进行消费。

五、生产者生产数据和消费者消费数据

生产者生产数据还是消费者消费数据,都要以某一个主题为聚类,也就是主题必不可少。

六、ISR列表

kafka当中,有一个isr列表,这个列表维护所有分区的副本,当某一时刻,分区leader宕机了,isr列表就会从自身维护的副本当中选择一个最适合上位的副本上位成为leader,继续和producer和consumer进行通信。

kafkatopic_31">七、kafka当中topic主题的分区命名规则

分区的命名:主题的名称-(分区编号(从0开始,到numPartitions-1))

假如有个主题叫user,这个主题有3个分区,那么分区的命名:user-0,user-1,user-2

八、消费者组

任何一个消费者,都隶属于一个消费者组。

九、消费者组消费分区当中的数据

假如主题有3个分区,消费者组里只有一个消费者,那么一个消费者就会开启3个线程去消费3个分区当中的数据;加入有2个消费者,其中一个消费者开启1个线程消费1个分区的数据,另一个消费者就会开始2个线程去消费另外2个分区的数据;假如有3个消费者,每个消费者消费一个分区当中的数据;假如有超过分区数的消费者:

同一时刻,最多只能有对应分区数的消费者去消费数据,多余的消费者处于等待状态。

十、消费数据的原理

同一时刻,一个分区当中的数据,只能被一个消费者组当中的一个消费者所消费。

十一、offset(偏移量)

kafka当中,每个分区都维护者独属于自己这个分区一份偏移量,分区当中,每条数据都有一个独有且唯一的偏移量,用来标记消息,将来如果这条消息被消费,就会进行记录偏移量,再来消费就会从上次消费的偏移量继续往后开始消费。

独有且唯一:分区数据被删除,但是偏移量长存,再来的数据只能用新的偏移量记录,不会占用之前的偏移量

十二、创建主题注意事项

kafka在创建主题时:1、副本数不能超过broker数;2、分区数只能增加,不能缩减。

kafka_61">十三、kafka粘性分区

kafka2.4及以后版本,采用粘性分区,一批数据优先使用一个分区。

kafka_65">十四、kafka数据一致性

如果将数据生产到多个分区当中,只能保证分区之内有序,全局不一定有序;要想做到全局有序,只需要将所有的数据发送到一个分区当中。

十五、分区数是不是越多越好?

资源有限。

十六、副本数是不是越多越好?

副本数越多,造成数据冗余,占用大量的资源。

kafka_77">十七、kafka当中数据样子

kafka当中数据是key,value对类型,但是可以不指定key,如果不指定key,key默认值就是null。

kafka_81">十八、kafka生产数据的形式

指定topic+value:数据采用粘性分区,不一定发送到那个分区,相当于轮询模式。

指定topic+key(固定死)+value:按照key的hash然后模上分区数,将数据保存到指定分区。

指定topic+key(活跃)+value:按照key的hash然后模上分区数,将数据保存到指定分区。

指定topic+partiionNumber+key(无论固定还是活跃)+value:数据全部发送到指定分区当中。


http://www.ppmy.cn/news/1443574.html

相关文章

【数据结构】第二章 线性数据结构.线性表.单链表

第二章 线性数据结构.线性表.单链表 [5] 单链表的定义 1.单链表 逻辑结构:是一种线性表。 顺序表(顺序存储): 优点:可随机存取,存储密度高缺点:要求大片连续空间,改变容量不方便…

【idea】idea 中 git 分支多个提交合并一个提交到新的分支

一、方法原理讲解 我们在 dev 分支对不同的代码文件做了多次提交。现在我们想要把这些提交都合并到 test 分支。首先我们要明白四个 git 操作, commit:命令用于将你的代码变更保存到本地代码仓库中,它创建了一个新的提交(commit…

大数据Storm组件介绍

Storm 是一个开源的、分布式的实时计算系统,最初由Twitter开发并开源。它被设计用来处理大规模的实时数据流,并且具有高吞吐量、低延迟的特点。Storm 提供了一个简单而强大的编程模型,使得开发者可以轻松地编写复杂的实时数据处理应用。 以下…

Pandas——DataFrame对象用法

一、创建pandas的DataFrame对象 Pandas学习笔记二——创建pandas的DataFrame对象的3种方法 二、访问 Pandas DataFrame 中的元素 Python笔记:访问 Pandas DataFrame 中的元素 三、获取Dataframe的行数和列数 如何获取Dataframe的行数和列数 四、交换行 Panda…

《21天学通C++》实现继承(1)

1.派生语法 语法如下&#xff1a; class Base{};class Name:access-specifier Base{//access-specifier可以是public、private、protect};一个简单的继承结构程序&#xff1a; #include <iostream> using namespace std; // 定义一个基类Fish class Fish { public:bo…

LoggerFactory is not a Logback

错误信息 LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.SimpleLoggerFactory loaded from file:/D:/maven/repository/org/slf4j/slf4j-simple/1.7.26/slf…

Metasploit 溢出 samba 提权漏洞

一、信息收集 1.1 右键单击桌面&#xff0c;选择 Open Terminal Here &#xff0c;打开终端。 1.2 输入命令 nmap -sS -p 139,445 -A 192.168.1.254 ,对目标主机进行扫描,发现 139、445 端口开放。 1.3 输入命令“msfconsole”&#xff0c;启动 MSF 终端。 1.4 输入命令“searc…

webpack 入口和出口的最佳实践

入口和出口的最佳实践 {ignore} 具体情况具体分析 下面是一些经典场景 一个页面一个JS 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 源码结构 |—— src|—— pageA 页面A的代码目录|—— index.js 页面A的启动模块|—— ...|—— pageB 页面…