本文讨论了Kafka主题的体系架构,讨论了如何将分区用于故障转移和并行处理。

Kafka主题,日志和分区

Kafka将主题存储在日志中。主题日志分为多个分区。Kafka将日志的分区分布在多个服务器或磁盘上。将主题视为类别,流名称或提要。

主题本身就是发布和订阅样式的消息传递。一个主题可以有零个或多个名为使用者组的订阅户。为了速度、可伸缩性和大小,主题被划分为多个分区。

Kafka主题分区

Kafka将主题日志分解为多个分区。记录存储在一个分区上,如果存在该键,通常按记录键存储;如果缺少该键,则按循环存储(默认行为)。默认情况下,记录键决定生产者发送记录的分区。

Kafka使用分区在多个服务器上扩展主题以进行生产者写入。此外,Kafka还使用分区来促进并行消费者。使用者使用的记录与分区数并行。

每个分区保证的顺序。如果按键进行分区,则密钥的所有记录都将位于同一分区上,如果您必须重播日志,则该分区非常有用。Kafka可以将分区复制到多个代理以进行故障转移。

Kafka主题日志分区的排序和基数

Kafka一个分区中维护记录顺序。分区是一个有序的、不变的记录序列。Kafka使用分区作为结构化提交日志连续附加到分区。分区中的记录被分配了称为偏移量的顺序ID号。偏移量标识分区中的每个记录位置。主题分区允许Kafka日志扩展超出适合单个服务器的大小。主题分区必须适合承载它的服务器,但主题可以跨越承载在许多服务器上的多个分区。此外,主题分区是并行性的一个单元——一个分区一次只能由一个使用者组中的一个使用者处理。消费者可以在自己的进程或线程中运行。如果消费者停止,Kafka将分区分布在同一消费者组中的剩余消费者上。

Kafka体系架构:主题分区布局和偏移

Kafka主题分区复制

Kafka可以跨多个可配置的Kafka服务器复制分区,这些服务器用于容错。每个分区都有一个领导服务器和零个或多个追随服务器。领导处理分区的所有读写请求。

追随者模仿领导者,如果领导者死了,他们就会接管。Kafka还使用分区在组中进行并行消费者处理。Kafka将主题日志分区分布在Kafka集群中的服务器上。每个服务器通过共享分区领导层来处理其数据和请求的共享。

复制:Kafka分区领导者、追随者和ISR

Kafka使用ZooKeeper选择一个经纪人分区的副本作为领导者。

具有分区领导的代理处理分区记录的所有读写操作。Kafka将写操作复制到主分区的后续分区(节点/分区对)。同步的追随者称为ISR(同步副本)。如果分区领导失败,Kafka选择一个新的ISR作为新的领导。

复制到分区0

当分区的所有ISR都写入其日志时,该记录被视为“已提交”。只有提交的记录才可从消费者中读取。另一个分区可以由另一个Kafka代理的领导者拥有。

复制到分区1

Kafka主题体系结构评论

什么是ISR?

ISR是同步副本。如果领导者失败,ISR将被选为新的领导者。

Kafka如何扩大消费者规模?

Kafka通过分区来扩展消费者,这样每个消费者都可以获得分区的份额。消费者可以有多个分区,但一个分区一次只能由一个使用者组中的一个使用者使用。如果只有一个分区,那么只能有一个使用者。

什么是领导者?追随者?

领导者执行对特定主题分区的所有读写操作。追随者复制领导者。

Kafka如何为消费者执行故障转移?

如果消费者组中的消费者死亡,则分配给该消费者的分区将在该组中的剩余消费者之间分配。

Kafka如何为代理执行故障转移?

如果一个代理死了,那么Kafka将其主题分区的领导权分配给集群中的其余代理。

Kafka主题体系架构-复制、故障转移和并行处理的更多相关文章

  1. Kafka Topic 体系结构 - 复制 故障转移 并行处理

    本文介绍了 Kafka Topic 的体系结构,并讨论了如何使用分区进行故障转移和并行处理. 1. Kafka Topic, Log, Partition Kafka Topic(主题) 是一个有名字 ...

  2. GPU体系架构(一):数据的并行处理

    最近在了解GPU架构这方面的内容,由于资料零零散散,所以准备写两篇博客整理一下.GPU的架构复杂无比,这两篇文章也是从宏观的层面去一窥GPU的工作原理罢了 GPU根据厂商的不同,显卡型号的不同,GPU ...

  3. Apache Kafka主题 - 架构和分区

    1.卡夫卡话题 在这篇Kafka文章中,我们将学习Kafka主题与Kafka Architecture的整体概念.Kafka中的体系结构包括复制,故障转移以及并行处理.此外,我们还将看到创建Kafka ...

  4. Hyper-V 2012 R2 故障转移群集

    和终端用户相比,企业用户对于业务的连续性和可靠性更为在意.相对而言,企业一般不会将追逐单一硬件的性能排在第一位. 如何衡量业务是否持续可用,一般使用"x 个 9"这种方式来定义.如 ...

  5. 第八章 Hyper-V 2012 R2 故障转移群集

    和终端用户相比,企业用户对于业务的连续性和可靠性更为在意.相对而言,企业一般不会将追逐单一硬件的性能排在第一位. 如何衡量业务是否持续可用,一般使用"x 个 9"这种方式来定义.如 ...

  6. Kafka体系架构详细分解

    我的个人博客排版更舒服: https://www.luozhiyun.com/archives/260 基本概念 Kafka 体系架构 Kafka 体系架构包括若干 Producer.若干 Broke ...

  7. sqlserver2008 复制,镜像,日志传输及故障转移集群区别

    一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步, ...

  8. sql server 复制,镜像,日志传输及故障转移集群区别

    一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步, ...

  9. Kafka体系架构、命令、Go案例

    原文地址:https://github.com/WilburXu/blog/blob/master/kafka/Kafka基本架构和命令.md Kafka体系架构 Broker服务代理节点 服务代理节 ...

随机推荐

  1. (三)根据向导创建MFC工程,事件的添加和删除

    一,文档视图结构 文档:它是一个类,这个类专门用来存储数据 视图:它是一个类,这个类专门用来显示和修改数据 框架类:一个容器,这个容器装了视图 健完工程之后,类视图: 运行一下: 几个比较重要的函数 ...

  2. [Luogu] 逛公园

    https://www.luogu.org/problemnew/show/P3953 https://www.zybuluo.com/wsndy-xx/note/1134388 #include&l ...

  3. Qbxt 模拟赛 Day4 T2 gcd(矩阵乘法快速幂)

    /* 矩阵乘法+快速幂. 一开始迷之题意.. 这个gcd有个规律. a b b c=a*x+b(x为常数). 然后要使b+c最小的话. 那x就等于1咯. 那么问题转化为求 a b b a+b 就是斐波 ...

  4. Android项目实战登录&注册

    由于项目中大部分界面都有一个后退键和一个标题栏,为避免代码冗杂以及便于利用,我们可以将后推荐和标题栏单独抽取出来定义一个标题栏布局,在 res/layout 目录下新建一个 Layout resour ...

  5. 写简单的tb(testbench)文件来测试之前的FSM控制的LED

    先上我之前写的状态机控制的led代码led_test.v module led_test(clk,led_out); input clk; :] led_out; initial begin led_ ...

  6. Web安全(白帽子讲)之第二篇

    第二章:浏览器安全 2.1.同源策略 是一种约定,它是浏览器最核心也是最基本的安全功能. web是构建在同源策略的基础之上,浏览器只是针对同源策略的一种实现 影响“源” 的因素有:host(域名或IP ...

  7. scarpy crawl 爬取微信小程序文章(将数据通过异步的方式保存的数据库中)

    import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider ...

  8. OUC_TeamTraining_#1 720

    D - The Mirror of Galadriel Time Limit:2000MS     Memory Limit:0KB     64bit IO Format:%lld & %l ...

  9. DIV盒子模型介绍 div用法

  10. dubbo备忘

    http://start.dubbo.io/ https://github.com/dubbo/dubbo-samples https://www.aliyun.com/product/edas ht ...