初识Kafka

news2024/10/6 10:32:03

1.1 定义

Kafka传统定义: Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。

发布/订阅: 消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。

Kafka最新定义: Kafka是一个开源的分布式事件流平台(Event StreamingPlatform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

1.2 消息队列

目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。

  • 在大数据场景主要采用Kafka作为消息队列
  • 在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ

1.2.1 传统消息队列的应用场景

传统的消费队列的主要应用场景有:缓存/削峰(缓冲)、解耦(少依赖)、异步通信(不必要及时处理)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.2 消息队列的两种模式

消息队列主要分为两种模式:点对点模式(一个生产者对口一个消费者)和发布/订阅模式(一对多)。
在这里插入图片描述

1.3 Kafka基础架构

在这里插入图片描述

Producer : 消息生产者,就是向kafka broker发消息的客户端;
Consumer : 消息消费者,向kafka broker获取消息的客户端;
Consumer Group (CG): 消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个broker可以有多个不同的topic,一个topic下的一个分区只能被一个消费者组内的一个消费者所消费;消费者组之间互不影响。消费者组是逻辑上的一个订阅者。
Broker : 一台kafka服务器就是一个broker。一个broker可以容纳多个不同topic。
Topic : 可以理解为一个队列,生产者和消费者面向的都是一个topic;
Partition: 为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列;
Replica: 副本,为保证集群中的某个节点发生故障时,该节点上的partition数据不丢失,且kafka仍然能够继续工作,kafka提供了副本机制,一个topic的每个分区都有若干个副本,一个leader和若干个follower。
leader: 每个分区副本中的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是leader。
follower: 每个分区副本中的“从”,实时与leader副本保持同步,在leader发生故障时,成为新的leader。

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

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

相关文章

[数据结构基础]二叉树——堆的概念、结构、接口函数及经典的Topk问题和堆排序问题

目录 一. 堆的概念及结构 1.1 堆的概念 1.2 堆的结构及在内存中的存储 二. 堆的主要接口函数 2.1 堆初始化函数HeapInit 2.2 堆销毁函数HeapDestroy 2.3 向堆中插入数据函数HeapPush(以小堆为例) 2.4 删除堆根节点数据函数HeapPop(小…

C++ 夺冠!成为 TIOBE 2022 年度编程语言

目录:C夺冠—成为TIOBE2022年度编程语言一、前言二、C 摘得桂冠三、Top 10 编程语言 TIOBE 指数走势(2002-2023)四、历史排名(1987-2023)五、编程语言“名人榜”(2003-2022)六、说明一、前言 2…

vitepress(三):自动生成目录

上一节我们将自己的网站发布到了git pages上,但是现在我们需要每次更新一篇文章就重写一次目录,操作上十分的繁琐和不方便,所以我们需要一个方法去自动生成我们的侧边栏结构,方便我们每次只需要更新我们的项目即可。这里我们要知道…

【每日一题】【LeetCode】【第六天】【Python实现】加一

加一的解决之路 题目描述 测试案例(部分) 第一次 1这个很好理解,唯一的难点就是个位1导致的进位的问题,可能会只会导致十位1,也有像8999这样产生多次进位的情况。 为了解决进位问题,自己想到了第三天学…

mysql三表查询15个例子带你搞懂它

mysql三表查询30个经典案例创建三个表a、b、c表a中的数据表b中的数据表c中的数据1.查询出学习成绩70分以上的学生姓名与成绩与学科;2.查询姓名以mi结尾的学生姓名及其任课老师姓名;3.选修课名为math的学生学号与姓名;4.选修课号为C4的学生学号&#xff1…

QEMU调试Linux内核环境搭建

一个最小可运行Linux操作系统需要内核镜像bzImage和rootfs,本文整理了其制作、安装过程,调试命令,以及如何添加共享磁盘。编译内核源码从 The Linux Kernel Archives 网站下载内核源码,本文下载的版本为4.14.191,4.14.…

危险程度(并查集)

有 nn 种化学物质,编号 1∼n1∼n。 其中,有 mm 对物质之间会发生反应。 现在,要将这些化学物质逐个倒入同一个试管之中,具体倒入顺序不限。 我们需要计算一下试管的危险值。 已知,空试管的危险值为 11,…

【UE4 第一人称射击游戏】21-添加动态扩散准心

素材资料地址:链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg密码:jlhr上一篇:【UE4 第一人称射击游戏】20-添加瞄准十字线本篇效果:步骤:将资源移至FPS项目文件夹内移入后发现多了一个名为“WBCro…

【web安全】——报错注入

作者名:Demo不是emo主页面链接: 主页传送门创作初心: 舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

如何查看sqlite数据库的 .db文件中的表的内容数据

在使用 qt 的sqlite 数据的时候,对于创建的数据库的 .db 文件的内容的查看我们可以按照下面的步骤安装工具进行查看 下载所需的sqlite 查看工具 下载:链接:https://pan.baidu.com/s/1KSl9w61zaEyemhR1Ir04_A 提取码:6666 只需要解压即可,其中安装包内…

MINISForum HX90 主机风扇调教

今年秋天买了个1个HX90 5900H的mini主机。准系统版本,2899元。 但是买回来之后,发现它的风扇声音实在是大,稍微一加载点东西,就 开始呜呜的响,简直让人心烦 意乱。 去了官网查看。好多人的解决办法看了没看明白&…

【机器学习】PR曲线F1评分ROC曲线AUC

参考:《百面机器学习》 PR曲线 TP( True Positive):真正例 FP( False Positive):假正例 FN(False Negative):假反例 TN(True Negative&#xff0…

基于imx6ull配置开发环境

1. 交叉编译链背景:因为在原子的教程中有强调最新的Linaro gcc编译完uboot后无法运行的问题,所以原子采用4.9,那我们就沿用下。Linaro gcc有两个版本: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-20…

linux反弹备忘录

如果你有幸在渗透测试中发现了命令执行漏洞,那么不久之后你可能需要一个交互式shell。如果无法添加新帐户/ SSH密钥/ .rhosts文件并登录,则下一步可能是拖回反向shell或将shell绑定到TCP端口。 本页讨论前者。创建反向 shell 的选项受到目标系统上安装的…

【阶段三】Python机器学习05篇:机器学习项目实战:逻辑回归模型

本篇的思维导图: 要对离散变量进行预测,则要使用分类模型。分类模型与回归模型的区别在于其预测的变量不是连续的,而是离散的一些类别,例如,最常见的二分类模型可以预测一个人是否会违约、客户是否会流失、肿瘤是良性还是恶性等。逻辑回归模型虽然名字中有“回归…

Neural-Pull曲面重建程序配置

前几天一篇曲面重建文章的审稿意见回来了,要求加近三年对比方法。在github上搜了一些项目,大部分的环境都很难配置成功。最后找了一个ICML2021年的点云重建项目[1]作为实验对比。 项目链接:mabaorui/NeuralPull-Pytorch 整体来说&#xff0…

SpringBoot 多种方式配置错误页面

参考资料 SpringBoot异常处理机制-BasicErrorController与ControllerAdviceJava开发从工作到原理–BasicErrorController统一异常处理【spring boot】spring boot 处理异常SpringBoot一个请求的处理全过程ControllerAdvice和ErrorPageRegistrar接口配置错误页面的问题SpringBo…

【Linux操作系统】自动化编译make和Makefile

文章目录一.make/makefile简介1.什么是make,makefile?2.为什么要有make/makefile?二.makefile文件规则1.基本规则2.举一个例子3.伪目标4.其他规则三.文件三个时间问题-make程序1.三个时间何时更新2.touch的两个作用3.make程序如何知道依赖文件是否更新?一.make/makefile简介…

手写Srping11(实现AOP切面)

文章目录目标设计项目结构一、代理方法的案例二、代理方法案例拆解实现1、切点表达式——Pointcut2、类匹配器——ClassFilter3、方法匹配器——MethodMatcher4、实现切点表达式类——AspectJExpressionPointcut4.1、匹配验证5、包装切面信息——AdvisedSupport5.1、被代理的目…

Zynq PS之MIO、EMIO调试

目录 原理框图 Vivado中添加&配置Zynq UltraScale MPSoc IP UART设置(仅用于调试,非必需) MIO、EMIO设置 DDR配置 执行Generate Output Products 执行Create HDL Wrapper 执行File -> Export ->Export Hardware 执行Launch S…