【大数据学习 | kafka】kafuka的基础架构
1. kafka是什么
Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的(Replicated)、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,KafKa能够很好的处理活跃的流数据,使得数据在各个子系统中高性能、低延迟地不停流转。
Kafka使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。
2. 什么是消息队列
消息队列:是在消息的传输过程中保存消息的容器。

消息在原始的传输过程中是直接传输的,端对端的数据传递,但是有的时候我们需要将消息数据进行部分的缓冲存储,以达到方便使用的目的,中间的组件可以做消息的传输中间介质,这个组件就是消息队列。更像是一个消息的蓄水池一样的功能
类比现实中更像是高速公路的休息区
3. 消息队列的好处
缓冲

解耦

异步

如果是同步服务,如上图,那么用户的体验度是非常差的,因为需要将短信发送完毕然后在返回成功通知,页面才会跳转,但是如果短信发送遇见网络等问题,没有办法直接发送,这个时候客户需要等待很长的时间

直接将需要发送的消息放入到消息队列中,然后消息服务会不停的扫描队列中需要发送的消息将数据发送出去,但是不会让客户等待,用户会大大的增加体验度
抵挡洪峰

如上图,我们需要处理流量的波峰和抖动,那么我们需要设定整个集群的处理能力达到最大的5M/s才可以,但是大多数时候这个处理能力都是浪费的,我们用不到

我们可以使用消息队列进行数据的存储,然后计算服务慢慢去消息队列中拉取数据进行消费就可以了,可以在一定程度节省成本
4. 消费订阅模式
通过以上的讲解,我们可以了解整个kafka的原理和架构了,消息队列其实就是一个数据传输过程中的缓冲区,能够存储数据,在流程中作为一个中间的介质,承上启下,在特定的情景下起到解耦,缓冲,异步的功能。
作为中间的介质,它的上下游需要传输和拉取数据,上游传输数据的部分称之为生产者,生产数据发送到kafka中,下游拉取数据的组件称之为消费者,自己拉取想要的数据并且进行数据的计算和处理,消费者和消费者以及kafka是三个部分,大家一定要注意,他们不是一个整体

其中生产者只是发送数据到队列中,但是消费者在消费数据的时候却有两种不同的方式
1.点对点消费

点对点的方式,在队列中的数据有且只有一个消费者可以消费数据,在消费完毕数据以后会将数据从队列中删除,这个数据有且只有一次消费
2.发布订阅模式

发布订阅模式中每个人可以消费数据,这个数据会在队列中存储七天,每个订阅这个数据的人都可以消费到相应的数据,并且可以重复的进行消费数据,在大多数情况下我们都使用发布订阅模式
5. kafka基础架构
kafka作为消息队列,主要在大数据的处理和计算过程中起到承上启下的作用,作为中间的一个缓冲中间件,那么它首先就要具备数据的稳定性和可靠性,并且存储数据量和吞吐量以及数据的检索速度一定要有所保证,那么单台机器肯定是没有办法解决这个问题的,在之前的所有的大数据组件部分我们都有所介绍,首先要保证性能一定要多台机器,分布式计算和存储才能保证性能,其次就是数据一定要做副本备份才能在多台机器的集群中保证数据的稳定性。所以首先要给大家介绍的就是kafka的集群组成结构

kafka首先我们要知道它不是一个主从集群,之前的课程中我们讲过,主从集群中节点有的天生就是主节点不能被其他的从节点替代,在非主从集群中每个节点都可以作为主节点,如果一个节点宕机那么其他的节点可以选举为主节点管理整个集群,在kafka集群中每个节点都称之为broker,其中每个节点都存在一个kafka_controller组件,但是只有一台节点的controller组件是活跃状态的,其他的都是standby状态,只有主节点宕机了,那么从节点才会选举成为主节点,但是究竟谁是主节点呢?这个时候我们需要一个外部协调管理组件zookeeper进行集群选举

相关文章:
【大数据学习 | kafka】kafuka的基础架构
1. kafka是什么 Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的(Replicated)、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,KafKa能够很好…...
2-petalinux2018.3摸索记录-petalinux rootfs
1Filesystem Packages文件系统软件包2Petalinux Package GroupsPetalinux软件包组3Image Features镜像特性4apps应用程序5user packages用户软件包6Petalinux RootFS SettingsPetalinux根文件系统设置 Filesystem Packages(文件系统软件包) 这个选项主要…...
RHCE作业二
1.要求: 配置nginx服务通过ip访问多网站 2. 1关闭防火墙 2创建ip 3配置 4创建文件 5测试...
GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册
GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册 GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册 时空安全隔离装置采用先进的防欺骗抗干扰技术,能够有效检测识别欺骗干扰信号,并快速对异常信号进行关断、切换,消除欺骗干扰影响。…...
【C++篇】深度解析类与对象(下)
引言 在上一篇博客中,我们学习了C的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,…...
【gRPC】什么是RPC——介绍一下RPC
说起RPC,博主使用CPP手搓了一个RPC项目,RPC简单来说,就是远程过程调用:我们一般在本地传入数据进行执行函数,然后返回一个结果;当我们使用RPC之后,我们可以将函数的执行过程放到另外一个服务器上…...
谈谈你对AQS的理解
AQS 是多线程同步器,它是 JUC 包中多个组件的底层实现,如 Lock、CountDownLatch、Semaphore等都用到了AQS。 从本质上来说,AQS 提供了两种锁机制,分别是排它锁,和共享锁。 排它锁,就是存在多线程竞争同一…...
Bitcoin全节点搭建
1. wget https://bitcoincore.org/bin/bitcoin-core-0.20.1/bitcoin-0.20.1-x86_64-linux-gnu.tar.gz 2.tar -xzvf bitcoin-0.20.1-x86_64-linux-gnu.tar.gz mv bitcoin-0.20.1 bitcoin 3.创建配置文件(bitcoin.conf) mkdir -p /btc_data mkdir ~/.b…...
【mysql进阶】4-6. InnoDB 磁盘文件
InnoDB 磁盘⽂件 1 InnoDB存储引擎包含哪些磁盘⽂件? 🔍 分析过程 ✅ 解答问题 InnoDB的磁盘⽂件主要是表空间⽂件和其他⽂件,表空间包括:系统表空间、独⽴表空间、通⽤表空间、临时表空间和撤销表空间;其他⽂件有重做…...
HexForge:一款用于扩展安全汇编和十六进制视图的IDA插件
关于HexForge HexForge是一款用于扩展安全汇编和十六进制视图的IDA插件,在该工具的帮助下,广大研究人员可以方便地直接从 IDA Pro 界面数据解码、解密或执行安全数据审计任务。 功能介绍 1、从 IDA 的反汇编或十六进制视图复制原始十六进制;…...
WORFBENCH:一个创新的评估基准,目的是全面测试大型语言模型在生成复杂工作流 方面的性能。
2024-10-10,由浙江大学和阿里巴巴集团联合创建的WORFBENCH,一个用于评估大型语言模型(LLMs)生成工作流能力的基准测试。它包含了一系列的测试和评估协议,用于量化和分析LLMs在处理复杂任务时分解问题和规划执行步骤的能力。WORFBE…...
SpringBoot 集成 Activiti 7 工作流引擎
一. 版本信息 IntelliJ IDEA 2023.3.6JDK 17Activiti 7 二. IDEA依赖插件安装 安装BPM流程图插件,如果IDEA的版本超过2020,则不支持actiBPM插件。我的IDEA是2023版本我装的是 Activiti BPMN visualizer 插件。 在Plugins 搜索 Activiti BPMN visualizer 安装创建…...
UVM初学篇 -(22)UVM field_automation 域的自动化机制
field_automation机制是域的自动化的机制,这个机制的最大的优点是可以对一些变量进行批量的处理,比如对象拷贝、克隆、打印之类的变量。 一、 成员变量的注册 使用field_automation机制首先要用uvm_field 系列宏完成变量的注册,类中的成员变…...
STL二分查找
本课主要介绍容器部分里面的二分查找函数。涉及的函数有 3 个,这 3 个函数的强两个输入参数都和迭代器有关,或者说参数是可以迭代的,而第三个参数则是你要查找的值。 1. binary_search binary_search 的返回结果是 bool 值,如果找…...
啤酒游戏—企业经营决策沙盘
感谢黄浦区文华学院的邀请,今年是为南房集团开展系统思考培训的第二年。我们现在为客户设计的一整年系统思考训练中,会将系统环路结构图与真实议题研讨作为前置内容,让大家在理解整体框架后,再体验麻省理工学院系统动力学著名的“…...
尚硅谷-react教程-求和案例-@redux-devtools/extension 开发者工具使用-笔记
## 7.求和案例_react-redux开发者工具的使用(1).npm install redux-devtools/extension(2).store中进行配置import { composeWithDevTools } from redux-devtools/extension;export default createStore(allReducer,composeWithDevTools(applyMiddleware(thunk))) src/redux/s…...
【动手学强化学习】part2-动态规划算法
阐述、总结【动手学强化学习】章节内容的学习情况,复现并理解代码。 文章目录 一、什么是动态规划?1.1概念1.2适用条件 二、算法示例2.1问题建模2.2策略迭代(policyiteration)算法2.2.1伪代码2.2.2完整代码2.2.3运行结果2.2.4代码…...
【python爬虫实战】爬取全年天气数据并做数据可视化分析!附源码
由于篇幅限制,无法展示完整代码,需要的朋友可在下方获取!100%免费。 一、主题式网络爬虫设计方案 1. 主题式网络爬虫名称:天气预报爬取数据与可视化数据 2. 主题式网络爬虫爬取的内容与数据特征分析: - 爬取内容&am…...
初识Linux · 动静态库(incomplete)
目录 前言: 静态库 动态库 前言: 继上文,我们从磁盘的理解,到了文件系统框架的基本搭建,再到软硬链接部分,我们开始逐渐理解了为什么运行程序需要./a.out了,这个前面的.是什么我们也知道了。…...
华为OD机试 - 匿名信(Java 2024 E卷 100分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…...
告别Kaggle!手把手教你将Gemma-PyTorch项目完整克隆到本地并运行(Windows/Python 3.11)
本地部署Gemma大语言模型:Windows环境下的完整实践指南 在人工智能技术飞速发展的今天,大型语言模型已成为开发者工具箱中不可或缺的一部分。谷歌推出的Gemma系列开源模型,以其出色的性能和相对轻量级的特性,为个人开发者和研究者…...
变分量子算法测量成本优化与TreeVQA框架解析
1. 变分量子算法与测量成本困局变分量子算法(Variational Quantum Algorithms, VQAs)作为当前量子-经典混合计算的核心范式,通过参数化量子电路逼近目标问题的解。其工作流程可类比经典机器学习中的参数优化:量子处理器负责制备量…...
AI检测率怎么降低?2026年5款知名降AI率工具评测,结果出乎意外!
一、前言:2026 年毕业必须通过aigc检测 2026年各高校对学术论文的AIGC疑似度的审查全面变严,均发布了具体AIGC检测报告和数值要求,211和985高校规定本科论文AI率要低于20%,硕士要求 AI 率不高于15%。普通高校一般要求AI率控制在 …...
Display Driver Uninstaller终极指南:三步彻底告别显卡驱动残留烦恼
Display Driver Uninstaller终极指南:三步彻底告别显卡驱动残留烦恼 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers…...
JDBC 工作原理
JDBC(Java Database Connectivity)是 Java 中用于执行 SQL 语句的一套 API,它定义了 Java 程序与数据库之间的标准接口。核心组件DriverManager:管理不同数据库驱动的注册,负责建立数据库连接Driver:数据库…...
G-Helper:重新定义华硕笔记本硬件控制的轻量化解决方案
G-Helper:重新定义华硕笔记本硬件控制的轻量化解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, S…...
矩阵分解在机器学习中的应用与实现技巧
1. 矩阵分解的本质与机器学习价值矩阵分解就像把一个复杂的乐高模型拆解成基础积木块的过程。在机器学习领域,这种技术通过将高维数据矩阵分解为低维表示,揭示了数据背后的潜在结构。我第一次接触矩阵分解是在推荐系统项目中,当时面对数百万用…...
PAT题库宝藏用法:不止为考试,用这些算法题巩固你的数据结构与算法基础
PAT题库宝藏用法:不止为考试,用这些算法题巩固你的数据结构与算法基础 当你第一次听说PAT题库时,可能以为这只是个面向计算机程序设计能力考试的备考资源。但今天我要告诉你一个截然不同的视角——这套题库实际上是数据结构与算法学习的金矿。…...
CitySim交通数据集:如何为自动驾驶安全研究提供革命性数据支持?
CitySim交通数据集:如何为自动驾驶安全研究提供革命性数据支持? 【免费下载链接】UCF-SST-CitySim1-Dataset Official github page of UCF SST CitySim Dataset 项目地址: https://gitcode.com/gh_mirrors/ucf/UCF-SST-CitySim-Dataset 随着自动驾…...
RA8900CE计时芯片的隐藏玩法:不止是时钟,还能做低功耗定时唤醒与温度监测?
RA8900CE计时芯片的隐藏玩法:不止是时钟,还能做低功耗定时唤醒与温度监测? 在物联网设备设计中,电池续航往往是工程师最头疼的问题之一。当你的传感器节点需要在野外持续工作数年,或者智能手表需要以周为单位充电时&am…...
