Kafka 概述
Kafka 概述
- Broker
- 消费者
Kafka 属于分布式的消息引擎系统,主要功能 :提供一套完备的消息发布与订阅解决方案
生产者和消费者都是客户端(Clients):
- 生产者(Producer):向主题发布消息的客户端应用程序
- 消费者(Consumer):订阅这些主题消息的客户端应用程序
Kafka 服务端 :
- 由多个 Broker 进程构成
- Broker 负责接收/处理客户端发送过来的请求,和消息进行持久化
Broker
备份机制(Replication):实现高可用
- 备份思想:把相同的数据拷贝到多台机器上,形成副本(Replica)
Kafka 有两类副本:
- 领导者副本(Leader Replica):对外提供服务,与客户端程序进行交互
- 追随者副本(Follower Replica):只追随领导者副本,不与外界进行交互
副本机制:
- 生产者向领导者副本写消息
- 消费者从领导者副本读消息
- 追随者副本:只向领导者副本发送请求,与领导者的同步
伸缩性(Scalability) :
- 利用分区机制把数据切分到不同的 Broker 上
- 分区机制:将每个主题划分成多个分区(Partition)
- 每个分区是一组有序的消息日志
- 生产者的每条消息只会发送到一个分区中
- 分区编号是从 0 开始的,如 : Topic 有 20 个分区,分区号是从 0 到 19
副本/分区关系 :
- 每个分区下能配置 n 个副本(1 个领导者副本/ N-1个追随者副本)
- 生产者向分区写入消息,每条消息在分区位置由位移(Offset)表示
- 分区位移从 0 开始,如 : 生产者向空分区写入10 条消息,该消息的位移是 0 - 9
Kafka 三层消息架构:
- 一层 :主题层,每个主题能配 M 个分区,每个分区能配 N 个副本
- 二层:分区层,每个分区的 N 个副本中只有一个领导者角色,对外提供服务;其他 N-1 个副本只先领导副本拉取数据,实现数据冗余
- 三层:消息层,每个分区有 T 条消息,每条消息的位移从 0 开始,依次递增
- 客户端只与分区的领导者副本进行交互
Kafka Broker 持久化数据 :
- 用消息日志 (Log) 来保存数据
- 一个日志是一个只能追加写 (Append-only) 消息的物理文件
- 实现高吞吐量 :追加写入,能避免随机 I/O 操作,改为顺序 I/O 写操作
Kafka 定期删除消息 :
- 利用日志段(Log Segment)机制定期删除消息来回收磁盘
- 一个日志分成多个日志段,消息只写到最新的日志段中,当写满后,就自动分出新的日志段,并把老日志段保存
- 后台定时任务检查老日志段是否能够被删除,来实现回收磁盘
消费者
两种消息模型 :
- 点对点模型(Peer to Peer,P2P) : 同条消息只能被一个消费者消费
- 发布订阅模型
Kafka 实现 P2P 模型 : 引入了消费者组(Consumer Group)
- 消费者组 : 多个消费者实例为一个组来消费一组主题
- 该组主题的每个分区只能被组内的一个消费者实例消费
- 多个消费者实例同时消费,加速整个消费端的吞吐量(TPS)
- 消费者实例能是一个进程或一个线程,都是一个消费者实例(Consumer Instance)
重平衡 (Rebalance) :
- 消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程
- 实现消费者高可用
消费者位移 (Consumer Offset) :
- 表示消费者消费进度,每个消费者都有自己的消费者位移

相关文章:
Kafka 概述
Kafka 概述Broker消费者Kafka 属于分布式的消息引擎系统,主要功能 :提供一套完备的消息发布与订阅解决方案 生产者和消费者都是客户端(Clients): 生产者(Producer):向主题发布消息…...
详解Java8中如何通过方法引用获取属性名/::的使用
在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点。 1、编码效率低&#x…...
0106广度优先搜索和最短路径-无向图-数据结构和算法(Java)
1 单点最短路径 单点最短路径。 给定一幅图和一个起点s,回答“从s到给定目的顶点v是否存在一条路径?如果有,找出其中最短的那条(所含边数最少)。“等类似问题。 深度优先搜索在这个问题上没有什么作为,因为…...
僵尸(Zombie)进程
文章目录1.僵尸进程2.产生僵尸进程的原因3.利用 wait 函数销毁僵尸进程4.使用 waitpid 函数销毁僵尸进程1.僵尸进程 进程完成工作后(执行完 main 函数中的程序后)应被销毁,但有时这些进程将变成僵尸进程,占用系统中的重要资源。这…...
JS实现:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 数列是 1,1,2,3,5,8,13,21....观察可以看出来从第三个数字开始…...
Verilog如何编写一个基础的Testbench
本文将讲述如何使用Verilog 编写一个基础的测试脚本(testbench)。在考虑一些关键概念之前,先来看看testbench的架构是什么样的。架构包括建模时间、initial块(initial block)和任务(task)。此文…...
基于JavaEE社区物业管理系统开发与实现(附源码资料)
文章目录1. 适用人群2. 你将收获3.项目简介4.技术栈5.测试账号6.部分功能模块展示6.1.管理员6.2.业主1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计或者是需要实战项目的Java开发学习者。 2. 你将收获 提供:项目源码、项目文档、数据库脚本、软件工…...
问一下ChatGPT:DIKW金字塔模型
经常看到这张DIKW金字塔模型图,还看到感觉有点过份解读的图,后面又加上了insight,impact等内容。 Data:是数据,零散的、无规则的呈现到人们眼前,如果你只看到这些数字,如果没有强大的知识背景&a…...
javaScript基础面试题 ---闭包
闭包1、闭包是什么?2、闭包可以解决什么问题?3、闭包的缺点1、闭包是什么? 闭包是一个函数加上到创建这个函数的作用域的链接,就是一个作用域可以访问到另一个作用域的变量,闭包‘关闭’了函数的自由变量 function f…...
如何自定义您的网站实时聊天图标
实时聊天图标是您网站上的一个按钮,可在访问者单击时打开实时聊天。它代表了您的企业与客户沟通的门户。这是您的网站访问者与您联系、提出问题和接收个性化推荐的一种方式,聊天图标的设计最好是简单且引人入胜,个性化的图标往往更能提现企业…...
Vue侦听器Watch
31. Vue侦听器Watch 1. 定义 Watch是Vue.js提供的一个观察者模式,用于监听数据的变化并执行相应的回调函数。虽然计算属性Computed在大多数情况下更合适,但有时也需要一个自定义的侦听器Watch。因为在有些情况下,我们需要在状态变化时执行一…...
云快充研发中心平台架构师谈云原生稳定性建设之路
作者:吕周洋 大家好,我是来自云快充研发中心的平台架构师吕周洋,今天我给大家分享云快充云原生稳定性之路。 点击查看:云快充研发中心平台架构师 吕周洋:云快充云原生稳定性治理之路 云快充成立于2016年,…...
ENVI IDL学习笔记之基本操作
前言ENVI IDL(交互式数据语言)是一个通用的科学计算包,它提供了一套数学函数、数据分析工具,以及一些科学可视化和动画工具。IDL 是 ENVI 图像处理和分析软件的基础,可用于编写脚本并自动执行许多使用 ENVI 图形用户界…...
多线程面试题
1. Sychronized的锁升级过程是怎样的? 2. Tomcat 中为什么要使用自定义类加载器? 3. 说说对线程安全的理解 4. 对守护线程的理解 5. 并发、并行、串行之间的区别 6. Java死锁如何避免? 7. 谈谈你对AQS的理解,AQS如何实现可重入锁&…...
YARN运行流程
YARN是Hadoop资源管理器,他是一个通用资源管理平台和调度平台,可为上层应用提供统一的资源管理和调度,MapReduce等运算程序则相当于运行于操作系统上的应用程序,YARN为这些程序提供运算所需的资源内存、cpu。 YARN并不清楚用户提…...
java八股系列——SpringMVC从接受请求到完成响应的过程
Spring的MVC框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 流程大致如下: 用户发起请求:用…...
Elasticsearch索引全生命周期
索引(Index)是Elasticsearch中最重要的概念之一,也是整个Elasticsearch操作的基础,它是相互关联的文档的一个集合。在Elasticsearch种,数据存储为 JSON 文档,每个文档将一组键(字段或属性的名称)与其对应的…...
汇编指令学习(LOOP)
一、xor异或操作,相同为0,不同为1xor eax,eaxeax异或eax,相同为0,并把结果存放到eax,简单说该语句就是想eax寄存器清零。二、ECX,计数器mov ecx,0x3将ecx寄存器设置为3三、DEC减一操作dec ecxecx寄存器的值…...
Linux 配置本地yum源
挂载光盘 进入包 配置路径,查看在线yum源 移动在线yum源到/home/目录下 进入vi,任意取名以.repo结尾即可 按住i进行编辑,输入以下内容 注意gpgcheck1是检验,配置本地yum源不需要检验 写入上图内容按住:输入wq,点击回车…...
【PyTorch】教程:torch.nn.LeakyReLU
torch.nn.LeakyReLU 原型 CLASS torch.nn.LeakyReLU(negative_slope0.01, inplaceFalse) 参数 negative_slope (float) – 控制负值斜率,默认为 1e-2inplace (bool) – in-place 操作,默认为 False 定义 LeakyReLU(x)max(0,x)negative_slope∗min…...
2026届学术党必备的十大降重复率神器推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 已正式被推出名为AIGC检测服务系统的是中国知网,其目的在于识别学术文献里由人工…...
3分钟掌握:如何用WeChatMsg永久保存你的数字记忆?
3分钟掌握:如何用WeChatMsg永久保存你的数字记忆? 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/w…...
告别配置焦虑:手把手教你用Intel MPI在Visual Studio 2019里跑通第一个Fortran并行程序
告别配置焦虑:手把手教你用Intel MPI在Visual Studio 2019里跑通第一个Fortran并行程序 第一次接触并行计算时,面对密密麻麻的配置选项和晦涩的文档,你是否也感到无从下手?作为过来人,我完全理解这种焦虑。本文将带你用…...
3步实现企业级智能地址解析:Java开发者的终极效率提升指南
3步实现企业级智能地址解析:Java开发者的终极效率提升指南 【免费下载链接】address-parse Java 版智能解析收货地址 项目地址: https://gitcode.com/gh_mirrors/addr/address-parse 在电商、物流、外卖等数字化业务高速发展的今天,地址解析已成为…...
LocalAI私有化部署指南:兼容OpenAI API的本地AI引擎实战
1. 项目概述:LocalAI,你的私有化AI引擎 如果你和我一样,对把AI模型部署到自己的硬件上这件事充满热情,同时又对公有云API的成本、延迟和隐私问题感到头疼,那么LocalAI这个项目绝对值得你花时间深入研究。简单来说&…...
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
文章目录 前言一、Docker网络核心认知(必须先懂)1 容器的隔离本质2 Docker默认自带三大网络 二、四大网络模式超通俗详解(含适用场景)1、bridge 桥接模式(默认模式、最常用)2、host 主机模式(无…...
九大网盘直链下载助手:告别限速困扰,一键获取真实下载地址
九大网盘直链下载助手:告别限速困扰,一键获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…...
工业级电子封装技术解析与应用实践
1. 嵌入式系统电子封装概述在工业自动化、电信基础设施和军事装备等领域,电子封装(EP)构成了嵌入式系统物理实现的基础框架。不同于消费电子产品的塑料外壳,工业级电子封装是一个包含机械结构、热管理、电磁屏蔽和电气互连的完整技术体系。以典型的VMEbu…...
AI与自动化如何重塑有机化学研究:从合成规划到实验执行
1. 项目概述:当化学家遇见代码与机械臂如果你是一位有机化学领域的研究者或从业者,过去十年里,实验室里最让你头疼的事情是什么?是通宵达旦地重复柱层析,是面对成百上千个反应瓶时的手忙脚乱,还是为一个看似…...
从服务器‘小管家’到开源项目:OpenBMC的诞生与Linux基金会下的演进之路
从服务器"小管家"到开源项目:OpenBMC的诞生与Linux基金会下的演进之路 在数据中心运维的幕后世界里,有一群不为人知的"硬件守护者"——它们24小时不间断地监控着服务器的健康状况,记录着每一次温度波动、电压异常和风扇转…...
