KaFak知识总结(1)

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/diannao/2692.shtml

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

相关文章

BTSB-面试题

面试笔试题 在32位系统里面&#xff0c;用C语言写一个程序&#xff0c;如何判断小端和大端 #include <stdio.h>// 判断系统字节序的函数 void checkEndianness() {unsigned int num 1;char *ptr (char*)&num;// 如果第一个字节存储的是最低有效字节&#xff0c;则…

【SpringBoot实战篇】获取用户详细信息-ThreadLocal优化

1 分析问题 对token的解析当初在拦截器中已经写过。期待的是在拦截器里写了&#xff0c;在其他地方就不写了&#xff0c;应该去复用拦截器里面得到的结果 2 解决方式-ThreadLocal 2.1提供线程局部变量 用来存取数据: set()/get()使用ThreadLocal存储的数据, 线程安全 2.2过程图…

OneFlow新概念清单,AI深度学习的革命性突破(AI写作)

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

路由过滤与引入

1、实验拓扑 2、实验要求 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 上使用 1oopback口模拟业务网段 2、运行 oSPF&#xff0c;各自协议内部互通 3、R1 和 R2 运行 RIPv2,R2&#xff0c;R3和R4在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的业务…

mPEG-Cyanur,Methoxy PEG Cyanur具有良好的生物相容性

【试剂详情】 英文名称 mPEG-Cyan&#xff0c;mPEG-Cyanur&#xff0c;Methoxy PEG Cyanur&#xff0c;Methoxy PEG Cyan 中文名称 聚乙二醇单甲醚三聚氯氰&#xff0c;甲氧基-聚乙二醇-氰尿酸 外观性状 由分子量决定&#xff0c;固体或者粘稠液体。 分子量 0.4k&#x…

自己写的爬虫小案例

网址&#xff1a;aHR0cDovL2pzc2NqZ3B0Lmp4d3JkLmdvdi5jbi8/dXJsPS92aWV3L3dvcmtpbmdVbml0L3dvcmtpbmdVbml0Lmh0bWw 这串代码能够爬取勘察单位企业的详细信息。 import requests import time import csv f open(勘察单位公司信息.csv,w,encodingutf-8,newline) csv_writer …

从阿里云OSS迁移到AWS S3的步骤

随着企业数字化转型的加速,云计算成为企业IT基础设施不可或缺的部分。对象存储作为云计算的重要组成部分,为企业提供了可靠、安全、低成本的数据存储和管理解决方案。在选择对象存储服务时,企业需要根据自身需求和发展战略来进行全面评估。我们九河云&#xff0c;获得AWS官方认…

探索C++20高级编程:新特性、技巧与性能优化

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

mPEG-Biotin,Methoxy PEG Biotin在免疫亲和层析、荧光标记和生物传感器等领域发挥关键作用

【试剂详情】 英文名称 mPEG-Biotin&#xff0c;Methoxy PEG Biotin 中文名称 聚乙二醇单甲醚生物素&#xff0c;甲氧基-聚乙二醇-生物素 外观性状 由分子量决定&#xff0c;固体或者粘稠液体。 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3.…

前端代码规范 - JavaScript 部分规范

JavaScript 是实现交互性和动态功能的关键语言。为了确保代码的可读性、可维护性和性能&#xff0c;遵循一定的编码规范至关重要。 命名规范强类型设计函数设计单一职责函数命名规范参数长度默认参数纯函数 性能优化减少DOM操作 提升JavaScript代码质量避免嵌套循环使用map、fi…

什么因素可以影响到代理IP稳定性?爬虫代理IP有哪些作用?

一、什么因素可以影响到代理IP稳定性 代理IP的稳定性受到多种因素的影响&#xff0c;以下是一些主要的因素&#xff1a; 代理IP的质量&#xff1a;不同的代理IP提供商提供的代理IP质量参差不齐&#xff0c;一些低质量的代理IP可能经常出现连接问题或速度慢的情况&#xff0c;…

力扣HOT100 - 104. 二叉树的最大深度

解题思路&#xff1a; class Solution {public int maxDepth(TreeNode root) {if (root null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }

利用OpenCV4.9制作自己的线性滤波器!

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9使用 inRange 的阈值操作 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 f…

Element-plus使用记录

Element-plus使用中遇到的问题与解决方案 动态渲染icon Element-plus中的icon需要单独安装Icon 图标 | Element Plus <template><div class"page"><div class"h-menu"><div class"show-menu" click"isCollapseHandle&…

爬虫零基础学习,第一天,安装环境,requests库常用命令的讲解

Python爬虫 爬虫学习思路 URL内容获取&#xff0c;requests的基本常用语法 import requests # 先向目标网站发送请求 url "http://www.baidu.com" r requests.get(url) # 可以用看一下访问码返回值是不是200&#xff0c;若是200则表示访问成功 print(r.status_…

RustGUI学习(iced)之小部件(一):如何使用按钮和文本标签部件

前言 本专栏是学习Rust的GUI库iced的合集&#xff0c;将介绍iced涉及的各个小部件分别介绍&#xff0c;最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个&#xff0c;目前处于发展中&#xff08;即版本可能会改变&#xff09;&#xff0c;本专栏基于版本0.12.1. 概述…

ZYNQ DMA环通测试

DMA(Direct Memory Access,直接内存存取),是指外部设 备不通过CPU直接与系统内存交换数据的接口技术。要将外设数据读入内存或将内存传送到外 设,一般都要通过CPU控制完成,如采用查询或中断方式。如前面讲到的BRAM实验。 虽然中断方式可以提高CPU的利用率,但是也会有效率…

前端CSS基础8(盒子模型(margin、border、padding、content))

前端CSS基础8&#xff08;盒子模型&#xff08;margin、border、padding、content&#xff09;&#xff09; CSS盒子模型CSS中常用的长度单位元素的分类&#xff0c;各个元素的显示模式修改元素的显示模式&#xff08;类型&#xff09;盒子模型的组成部分盒子内容区-contentCSS…

关于分布式锁的释放和spring事务提交时机不符合预期从而带来的数据不一致的问题

提要 首先注意&#xff0c;本文探讨的不是分布式事务&#xff0c;请读者注意区分&#xff01; 在我们的日常开发种&#xff0c;分布式锁和spring事务是常见的两种控制数据一致性的方式。 分布式锁和spring事务各自的作用就不做阐述了&#xff0c;不是本文重点&#xff0c;本文…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘.

问题1&#xff1a; AttributeError: module backend_interagg has no attribute FigureCanvas. 解决方案&#xff1a; import matplotlib matplotlib.use(Agg) # 选择合适的后端&#xff0c;如Aggimport matplotlib.pyplot as plt在你的代码开头加上这两行代码&#xff0c;…