当前位置: 首页 > news >正文

【大数据学习 | 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,加…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

GAN模式奔溃的探讨论文综述(一)

简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...