Kafka重点笔记

Kafka重点笔记

默认端口号 9092

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

kafka是将数据保存在磁盘。

二、离线计算、实时计算

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

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

三、kafka分区角色

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

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

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

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

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

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

六、ISR列表

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

七、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粘性分区

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

十四、kafka数据一致性

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

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

资源有限。

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

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

十七、kafka当中数据样子

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

十八、kafka生产数据的形式

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

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

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

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

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

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

相关文章

入门视觉(RM)

Opencv: 【youcans的OpenCV例程300篇】总目录-CSDN博客 ROS: Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 C: C 类 & 对象详解 - 知乎 (zhihu.com) Linux: 快速入门Linux操作系统学习笔记-CS…

MATLAB中Simulink.defaultModelTemplate用法

目录 语法 说明 示例 设置默认模型模板 获取默认模型模板 清除并恢复默认模型模板 Simulink.defaultModelTemplate的功能是设置或获取默认模型模板。 语法 Simulink.defaultModelTemplate(templatename) templatepath Simulink.defaultModelTemplate 说明 Simulink.d…

Elasticsearch与IK分词器:深度解析与实战应用

在当今大数据和云计算的时代,搜索引擎的重要性不言而喻。Elasticsearch作为一款强大的分布式搜索和分析引擎,被广泛应用于各种业务场景中。而IK分词器则是Elasticsearch中一款优秀的中文分词插件,对于中文文本的处理有着出色的表现。本文将详…

使用Jest测试框架测试JS项目

前言 JavaScript的测试框架有很多,这里主要记录一些自己在初次使用jest时遇到的一些问题。详细使用文档可以参照官方说明文档。 简介 Jest 是一款优雅、简洁的 JavaScript 测试框架。 Jest 支持 Babel、TypeScript、Node、React、Angular、Vue 等诸多框架&#…

蓝桥杯 BASIC-22 基础练习 FJ的字符串

蓝桥杯 BASIC-22 基础练习 FJ的字符串 问题描述 FJ在沙盘上写了这样一些字符串: A1 “A” A2 “ABA” A3 “ABACABA” A4 “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗? 输入格式 仅有一个数:N ≤ 26。 输出格式 请输…

深度学习之基础模型——循环神经网络RNN

相关资料 (1)What are Recurrent Neural Networks? | IBM (2)浅析循环神经网络(RNN)的反向求导过程 - 知乎 (zhihu.com) 总共有四篇 (3)循环神经网络(RNN)浅析 - 简书 (jianshu.co…

【React】Day6

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

springboot3 集成knife4j

knife4j介绍 Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案。 springdoc地址:OpenAPI 3 Library for spring-boot Knife4j官网地址:Knife4j 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j 环境介绍 java:17 Spring…

java 溯本求源之基础(十八)之Monitoring--jmc

1.JMC概述 JMC全称Java Mission Control,集成了多个功能强大的组件,其中最核心的两部分是管理控制台和Java Flight Recorder。管理控制台允许开发者实时监控应用的运行状态,捕捉各种性能指标;而Java Flight Recorder则提供了一种高…

ELK日志系统的搭建

文章目录 简介软件准备安装JDK下载Elasticsearch软件修改配置信息创建ElasticSearch运行用户、启动服务添加防火墙策略ElasticSearch-Head插件安装 安装Kibana下载软件包修改配置启动服务 安装Logstash安装包下载安装服务配置修改配置pipeline流水线服务配置文件 启动服务 全流…

腾讯云轻量应用服务器和CVM S5服务器有什么区别?

腾讯云轻量应用服务器和CVM云服务器S5有什么不同?性能哪个更好一些?CVM S5云服务器CPU采用2.5GHz主频的Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,轻量不支持指定CPU,从功能、内网连通性、集群及公网带宽等方面对…

邂逅JavaScript逆向爬虫-------基础语法篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

在 Quartz 的集群模式中,quartz是如何实现记录检查机制的?

目录 引言 记录检查的核心功能 源码分析 总结 引言 在 Quartz 的集群模式中,记录检查机制是确保任务调度和执行正确性的核心部分。这一机制涉及到集群中的每个节点定期检查数据库中的任务记录,以便正确地获取和执行待处理的任务。以…

并发编程之线程通信及Condition的原理分析

1. synchronized中的线程通信 调用wait方法会使线程处于等待状态&#xff0c;直到另一个线程调用notify线程才会唤醒等待中的某个线程&#xff0c;生产者和消费者模型可以很好的使用到该例子。 生产者代码: public class Producer implements Runnable {private Queue<Str…

虚拟现实(VR)的应用场景

虚拟现实&#xff08;VR&#xff09;技术创建和体验三维虚拟世界的计算机仿真技术。用户通过佩戴VR头显等设备&#xff0c;可以完全沉浸在虚拟世界中&#xff0c;并与虚拟世界中的物体进行交互。VR技术具有广泛的应用前景&#xff0c;可以应用于各行各业。以下是一些VR的应用场…

STM32标准库编程与51单片机直接写寄存器的区别和联系

简介&#xff1a; 在学完51单片机之后&#xff0c;我们去学习32的时候&#xff0c;会发现编程的方法有很大的区别&#xff0c;让人非常的不适应&#xff0c;但是通过不断的调用相应外设的库函数之后&#xff0c;你也可以去编程STM32&#xff0c;来实现功能&#xff0c;但是你真…

SQL的基础语句

1、select语句 select colums from table_name 2、条件语句 #查询出查询出用户id为1和3的用户记录 IN 操作符允许我们在 WHERE 子句中规定多个值。 select * from student where id in (1,3) #查询出所有姓王的同学 模糊查询 like 通配符(% 任意多个字符 _单个字符) #下例…

如何使用渐变块创建自定义聊天机器人

如何使用渐变块创建自定义聊天机器人 文章目录 如何使用渐变块创建自定义聊天机器人一、介绍二、参考示例1、一个简单的聊天机器人演示2、将流式传输添加到您的聊天机器人3、喜欢/不喜欢聊天消息4、添加 Markdown、图像、音频或视频 一、介绍 **重要提示&#xff1a;**如果您刚…

软考高级架构师:AI 通俗讲解负载测试、压力测试、强度测试、容量测试和可靠性测试

在软件工程领域&#xff0c;测试是一个确保软件质量和性能的关键步骤。负载测试、压力测试、强度测试、容量测试和可靠性测试都是性能测试的不同类型&#xff0c;它们的目的和方法有所不同。 下面我将通过简单的比喻和解释&#xff0c;帮助您理解这些测试之间的区别。 负载测试…

跳跃游戏 II (贪心, 动态规划)

题目描述(力扣45题) : 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到…