Kafka工作流程简介

news2024/11/15 12:05:45

消息传递模式简介:

一个消息系统负责将数据从一个应用程序传递到另外一个应用程序中,应用程序只关注数据,无需关注数据在多个应用之间是如何传递的。
分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。
消息传递有两种模式,分别是点对点消息传递模式和发布订阅消息传递模式。

1. 点对点消息传递模式:

点对点消息传递模式结构中,消息是通过一个虚拟通道(队列)进行传输的,生产者发送一条数据,消息将持久化到一个队列中,此时将有一个或多个消费者会消费队列中数据,但是一条消息只能被消费一次,且消费后的消息会从消息队列中删除,因此,即使有多个消费者同时消费数据,只会有一个消费者消费成功,数据都可以被有序处理。
image.png

2. 发布订阅消息传递模式:

在发布订阅模式中,发布者用于发布消息,订阅者用于订阅消息, 可以有多个不同的订阅者,发布者发布的消息会被持久化到一个主题中,这与点对点模式不同的是,订阅者可订阅一个或多个主题,订阅者可读取该主题中所有数据,同一条数据可被多个订阅者消费,数据被消费后也不会立即删除。

image.png

Kafka 简介:

Kafka是由Apache软件基金会开发的一个开源流处理平台,它由Scala和Java语言编写,是一个基于Zookeeper系统的分布式发布订阅消息系统,它与Apache Storm和Spark可以非常好地集成,用于实时流式数据分析。
Kafka能够在离线和实时两种大数据计算架构中处理数据。

Kafka的特性:

(1)解耦:只要生产者和消费者遵循接口约束,就可以修改或扩展数据处理的业务过程。
(2)扩展性:无需停机,用户可以向集群添删新的Kafka服务器。
(3)分布式:日志的分区partition(分布)在Kafka集群的服务器上。
(4)持久性:Kafka使用分布式提交日志,这意味着消息会尽可能快地保留在磁盘上,因此它是持久的。
(5)容错性:Kafka会将消息数据备份到多个服务器节点中。
(5)性能:Kafka对于发布和订阅消息都具有高吞吐量、低延迟。 即使存储了许多TB的消息,它也保持稳定的性能。
(6)支持多种客户端语言

Kafka架构:

image.png

Kafka核心组件:

image.png
同一消费组的不同消费者只能获取唯一的主题,不可获得同一主题,不同消费组的不同消费者可获得同一主题.

Kafka核心组件介绍:

image.png

image.png

6.2 Kafka工作原理:

Kafka工作流程分析:

1. 生产者生产消息过程:

生产者向Kafka集群中生产消息。Producer是消息的生产者,通常情况下,消息源可是服务器日志、业务数据及Web服务数据等,生产者采用推送的方式将数据消息发布到Kafka的主题中,主题本质就是一个目录,而主题是由Partition Logs(分区日志)组成,每条消息都被追加到分区中。

image.png

  1. Producer先从Zookeeper中找到该Partition的Leader。
  2. Producer将生产的数据消息发送给Leader。
  3. Leader负责将消息写入本地分区Log文件中。
  4. Follower从Leader中读取消息,完成备份操作。
  5. Follower写入本地Log文件后,会向Leader发送Ack,每次发送消息都会有一个确认反馈机制,以确保消息正常送达。
  6. Leader收到所有Follower发送的Ack后,向Producer发送Ack,生产消息完成。

2. 消费者消费消息过程

Kafka采用拉取模型,由消费者记录消费状态,根据主题、Zookeeper集群地址和要消费消息的偏移量,每个消费者互相独立地按顺序读取每个分区的消息,消费者消费消息的流程图如下所示。

image.png

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

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

相关文章

MySQL面试常问问题(日志) —— 赶快收藏

目录 1.MySQL日志文件有哪些?分别介绍下作用? 2.binlog和redo log有什么区别? 3.一条更新语句怎么执行的了解吗? 4.那为什么要两阶段提交呢? 5.redo log怎么刷入磁盘的知道吗? 1.MySQL日志文件有哪些&…

Typora配合PicGo阿里云图床配置

写博客的时候,刚开始直接在各大平台上直接写,后来还是觉得不太方便,需要在各大平台之间来回切换。于是就改用Typora,但是有个问题就是图片的处理,只能放在本地。想要发布到各大平台,就需要图床。本文结合阿…

2022年安徽最新水利水电施工安全员模拟试题及答案

百分百题库提供水利水电施工安全员考试试题、水利水电施工安全员考试预测题、水利水电施工安全员考试真题、水利水电施工安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 15.围堰工程可以直接判定为生产安全重大事故隐…

【UE4 第一人称射击游戏】02-玩家健康和护甲

步骤: 1.在“ThirdPersonCharacter”中添加两个浮点变量“Health”和“Armor” 将默认值设为1.0,表示默认100% 2.新建一个控件蓝图,命名为“FPSHUD” 打开“FPSHUD”,添加两个进度条,分别表示当前的生命值和护甲量 调…

InnoDB架构体系

2、InnoDB架构体系 2.1、内存结构 2.1.1、buffer pool InnoDB内存缓存区,使用空间换时间的思想,给数据做了一个缓存。把热点的数据存储在内存中,减少IO次数,提高效率。 show variables like %innodb_buffer_pool%;buffer pool …

基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用MPA算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 构造的核心是通过信道极化(channel polarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将…

【C语言】初阶习题

目录 1.图案问题 2、时分秒转换 3、打印1-100之间所有3的倍数的数字 4、打印100~200之间的素数 5、给定两个数,求这两个数的最大公约数 6、在屏幕上输出9*9乘法口诀表 7、计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值,打印出结果 8、二分查找 …

说明DBCO-PEG-SH二苯并环辛炔-聚乙二醇-巯基科研试剂材料,DBCO-PEG-SH结构式

结构式 英文:DBCO-PEG-SH,DBCO-PEG-Thiol 中文:二苯并环辛炔-聚乙二醇-巯基 溶剂:溶于水、DMSO等常规有机溶剂 性状:液体/固体白色或淡黄色粉末,取决于分子量 用途范围:广泛应用于医药、生物…

一文搞懂Linux下并制作环形缓冲区

1.环形缓冲区log_buf[]又是存在内核的哪个文件呢? 位于/proc/kmsg里,所以除了dmesg命令查看,也可以使用cat /proc/kmsg来查看 2.但是,dmesg命令和cat /proc/kmsg有所不同 2.1 dmesg命令 每次使用,都会打印出环形缓冲区的所有信息 2.2 cat /proc/kmsg 只会打印…

项目管理中,进度计划是摆设吗?

1、忽视进度计划 项目管理中,有的人认为进度计划是摆设,不重视计划,只是为了满足合同工期,做给客户看,因此草率的编制进度计划。 在通过客户要求后,就将计划搁置在一边,这就导致后期在执行任务…

科班演员陶奕菱亮相海南电影节:人生没有白走的路,每一步都算数

今天的记忆是带着海水的味道………”12月18日,在年末岁尾之际,徽风皖韵熏陶下成长的新生代演员陶奕菱再次来到海南三亚,受邀参加第四届海南岛国际电影节,迫不及待地跑向沙滩面朝大海,感受多姿多彩的魅力三亚。 优雅端…

Java对象内存布局和对象头

对象的内存布局 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 对象头 对象头由对象标记Mark W…

进程间通信

进程间通信 进程间通信是不同进程之间的信息传输或交换。在不同的过程中,双方可以访问哪些媒体?进程的用户空间相互独立。一般来说,他们不能互相接触。唯一的例外是共享内存区域。此外,系统空间是一个“公共场所”,所…

【OFDM系列8】对知乎“正交频分复用(OFDM)原理灵魂9问”的理解与通俗易懂回答(慎入,含大量重要公式详细推导的万字长文)

前段时间,在知乎上看到一篇文章: 正交频分复用(OFDM)原理 文中博主提出了关于OFDM的九个问题,看了之后感觉这些问题的确深入OFDM本质,仔细思考可以很好地加深对OFDM这种较为复杂的调制方式的理解,下面谈一谈本人粗浅的一些理解和粗浅的认识,如有不准确或不恰当之处,欢…

电脑里一辈子都不想删的神仙软件

📂目录🎈前言一、浏览器:Chrome新版Edge二、motrix-全能下载器三、压缩软件:WinRAR四、Quicker(更快)五、视频播放器:Potplayer六、listary七、清理工具:Dism八、199it九、PPT排版:iSlide十、 S…

jQuery 动画

文章目录jQuery 动画概述显示和隐藏动画show() 和 hide()toggle()淡入和淡出动画fadeIn() 和 fadeOut()fadeToggle()fadeTo()滑上和滑下动画slideUp()和slideDown()slideToggle()自定义动画简单动画jquery.color.js累积动画回调函数队列动画取消动画延迟动画jQuery 动画 概述 …

程序设计中的耦合类型

一个庞大的系统中,分布着许多子系统,子系统中包含许多包,包中又有数不清的类。自类往上,有数不清的调用关系,一旦两个或多个对象(包括类、包、模块、系统等)之间发生关系(这里我们可…

提升 5-7 倍速,使用 Mac M1 芯片加速 Pytorch 完全指南

2022年5月,PyTorch官方宣布已正式支持在M1芯片版本的Mac上进行模型加速。官方对比数据显示,和CPU相比,M1上炼丹速度平均可加速7倍。 哇哦,不用单独配个GPU也能加速这么多,我迫不及待地搞到一个M1芯片的MacBook后试水了…

CISCO 服务器配置 RAID 指南及安装操作系统

开机后看屏幕出现下图后按 Ctrlm 进入 RAID 配置主页 下图为 RAID 主页. 首先创建一个新的配置. 按SPACE选择要加入的硬盘,然后按F10确定 选择 SPAN-1 选择RAID级别,读写策略... 完成以上步骤后按YES保存配置 选择 Initialize 初始化硬盘 选择YES确定&a…

zabbix添加一个ubuntu受监控主机

ubuntu版本18.04 LTS 安装一个zabbix-agent,命令如下: sudo apt install zabbix-agent 安装成功后编辑zabbix-agent配置文件 vim /etc/zabbix/zabbix_agentd.conf Server: 被动模式访问的zabbix-server的ip ServerActive: 主动模式访问的zabbix-server的ip StartAgent…