深入浅出消息队列---11、Kafka分区管理_斑马工的博客-程序员宝宝_消息队列分区

技术标签: kafka  kafka原理  消息队列  kafka分区管理  kafka副本  

分区管理

前面几章我们说到Rabbitmq存储消息的时候使用的是内存和磁盘的方式进行存储,而Kafka消息被持久化到本地磁盘。按照我们的理解Rabbimtq的消息吞吐量应该大于Kafka的消息吞吐量,但是相反Rabbitmq的消息吞吐量反而小于Kafka的,那么为什么呢?

Kafka可以将主题(Topic)划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中,只要分区规则设置的合理,那么所有的消息将会被均匀的分布到不同的分区中,这样就实现了负载均衡和水平扩展。另外,多个订阅者可以从一个或者多个分区中同时消费数据,以支撑海量数据处理能力。顺便说一句,由于消息是以追加的方法存储到分区中的,多个分区顺序写磁盘的总效率要比随机写内存还要高(引用Apache Kafka – A High Throughput DistributedMessaging System的观点),是Kafka高吞吐率的重要保证之一。

分区副本机制

由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主
题下的消息高可用。kafka支持主备复制,所以消息具备高可用和持久性。

一个分区可以有多个副本,这些副本保存在不同的broker上。每个分区的副本中都会有一个作为Leader。当一个broker失败时,Leader在这台broker上的分区都会变得不可用,kafka会自动移除Leader,再其他副本中选一个作为新的Leader。在通常情况下

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014526891/article/details/124105704

智能推荐

卡萨米卡Casamica:「大室」所趋_Aso_Xcc的博客-程序员宝宝

住宅空间更新迭代私宅、别墅等大宅空间崛地而起大户型因为空间体量发生变化承载的内容和手法也会发生变化这也就意味着:卡萨米卡Casamica设计师要把功能至上、空间使用人与居住空间的关系作为设计重点…从别墅到大平层抛开了表面的浮夸和奢华更注重空间品质感、精神呈现已然成为了居住空间进化的主流方向消费促使审美升级从“基础标准化”向“高端定制化”驱动人们的“欲望”已爆发私宅 · “大室”手笔会客厅,功能分区明显会客厅将一楼与二楼打通,一片到底的大岩板护墙,整面利落的高端定制收

Chunked transfer encoding 简单说明_raorq的博客-程序员宝宝

Chunked transfer encoding  在协议总是很重要的,基本分为2部分,一部分是POST checke 一部分是down 下面介绍InputStream那部分  SampleEncoded responseHTTP/1.1 200 OKContent-Type: text/plainTransfer-Encoding: chunked...

linux基础命令:ls、cd、touch、mkdir、rm、tree、cp、mv、cat、less、head、tail、grep、管道 | 、echo、> >> && || 和软连接_海绵宝宝太天真的博客-程序员宝宝

操作系统概述目标了解 操作系统 的作用1.1 操作系统(Operation System, OS)操作系统作为接口的示意图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-orkeVfe4-1585385786873)(assets/1558233351754.png)]、没有安装操作系统的计算机, 通常被称为 裸机如果想在 裸机 上运行自己所编写...

.NET Core MySQL EntityFrameworkCore EF生成SQL语句 打印SQL语句_KingCruel的博客-程序员宝宝_ef 生成sql语句

Creating a Database with Code First in EF CoreMySql.EntityFrameworkCoreMySql.Data.EntityFrameworkCore1、实体类[Table("Book")]public class BookDo : DoBase{ [Key] [Column("id")] public int Id { get; set; } [Column("title")] public string Title

L1-033 出生年 (15分)java_小仄言的博客-程序员宝宝

L1-033 出生年 (15分)输入格式1988 4输出格式25 2013输入格式1 2输出格式0 0001import java.util.Scanner;public class Main{public static void main(String [] args) { Scanner input = new Scanner (System.in); int x = input.nextInt(); int y = input.n

吸烟者问题_谁偷了我的小鱼干儿的博客-程序员宝宝_吸烟者问题

前言吸烟者问题是操作系统中P、V操作部分的经典同步问题,深刻理解吸烟者问题对我们学习操作系统有着很大的益处!(ง •_•)ง吸烟者问题1. 问题描述三个吸烟者在一个房间内,还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴,供应 者有丰富货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸,第三个有自己的火柴。供应者随机地将两样东西放在桌子上,允许一个...

随便推点

【vue详细笔记】常用特性(表单、自定义指令、计算属性、侦听器、过滤器、生命周期)_lybinWeb的博客-程序员宝宝

vue常用特性文章目录vue常用特性一、表单操作1、基于vue的表单操作input单行文本audio单选框checkbox多选框select下拉选项textaea多行文本代码示例:2、表单域修饰符number转化为数值trim去除两边的空格lazy将input事件切换为change事件二、自定义指令1、自定义全局`v-focus`指令2、带参数的自定义指令3、局部指令三、计算属性1、计算属性用法2、计算属性与方法的区别四、侦听器1、侦听器应用场景2、侦听器用法实现一个场景3、侦听器应用场景实例五、过滤器1

WPF对话框整理_Stupid_kidofObj的博客-程序员宝宝_wpf 对话框

消息框 打开文件对话框 保存文件对话框 其他对话框 创建自定义输入对话框

线段树进阶_crazy__sea的博客-程序员宝宝_线段树拓展

线段树扩展首先大家需要先学会最普通的线段树,下面开始扩展。1. 线段树维护状态比如说矩阵乘法之类的东西。考虑线段树分治、合并的过程,假如我们存在一个满足结合律的东西(比如说矩阵乘法或一些dp),我们可以使用线段树维护。再比如说区间最大子段和,我们发现这里的状态数满足结合律的。2. 线段树动态开点这东西还是挺常用的。比如说现在有 nnn 棵 mmm 大小的线段树,如果朴素的做的话复杂度起步 O(nm)O(nm)O(nm),无法接受。我们可以只保留有用的点。比如说我们在某一棵线段树上进行了一次

从0到1构建计算机(9/12)--实现编译器_XA403的博客-程序员宝宝

本篇实现Jack的编译器,也是从0到1构建计算机系列最复杂的一篇。编译器的实现本身是非常复杂的,但得益于Jack超简洁的语法,我们回避掉了很多复杂的问题。总体上Jack编译器是一个完整的编译器,它包括词法分析,语法分析,语义分析,代码生成等重要主题。高级语言为什么能够被编译器理解和编译?因为高级语言是按照某种规则的语法(上下文无关语法)组织的,结构上层次化的语言。程序的每个类,每条语句都是符合某...

送东阳马生序_寇浩哲的博客-程序员宝宝

余幼时即嗜学。家贫,无从致书以观,每假借于藏书之家,手自笔录,计日以还。天大寒,砚冰坚,手指不可屈伸,弗之怠。录毕,走送之,不敢稍逾约。以是人多以书假余,余因得遍观群书。既加冠,益慕圣贤之道 ,又患无硕师、名人与游,尝趋百里外,从乡之先达执经叩问。先达德隆望尊,门人弟子填其室,未尝稍降辞色。余立侍左右,援疑质理,俯身倾耳以请;或遇其叱咄,色愈恭,礼愈至,不敢出一言以复;俟其欣悦,则又请焉。故余虽愚...

OpenCV源码编译(4.2.0+win10+vscode+cmake)_今天吃红烧鱼的博客-程序员宝宝

下载直接采用 gitee 上的镜像下载,下载使用 4.2.0 版本码云opencv源码镜像git clone -b 4.2.0 https://gitee.com/mirrors/opencv.git准备工具因为电脑安装了各种软件环境,所以基本没有单独下载什么,以下是工具版本-cmake:cmake --version 查看版本:cmake version 3.20.1- gcc 工具使用的是vs2017专业版自带的:VisualStudioProfessio...

推荐文章

热门文章

相关标签