本文讨论了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. 【转载】Dijkstra算法和Floyd算法的正确性证明

      说明: 本文仅提供关于两个算法的正确性的证明,不涉及对算法的过程描述和实现细节 本人算法菜鸟一枚,提供的证明仅是自己的思路,不保证正确,仅供参考,若有错误,欢迎拍砖指正   ----------- ...

  2. 2019.6.20 校内测试 NOIP模拟 Day 1 分析+题解

    这次是zay神仙给我们出的NOIP模拟题,不得不说好难啊QwQ,又倒数了~ T1 大美江湖 这个题是一个简单的模拟题.   ----zay 唯一的坑点就是打怪的时候计算向上取整时,如果用ceil函数一 ...

  3. libpng warning: iCCP: known incorrect sRGB profile告警处理

    在 qt中加载某些 png图片会出现:libpng warning: iCCP: known incorrect sRGB profile   告警信息. 虽然没什么影响,但是总看到这个警告非常的不舒 ...

  4. Palindrome Degree(CodeForces 7D)—— hash求回文

    学了kmp之后又学了hash来搞字符串.这东西很巧妙,且听娓娓道来. 这题的题意是:一个字符串如果是回文的,那么k值加1,如果前一半的串也是回文,k值再加1,以此类推,算出其k值.打个比方abaaba ...

  5. JS基础_垃圾回收(GC)

    垃圾回收(GC) 程序运行过程中也会产生垃圾,这些垃圾积攒过多以后,会导致程序运行的速度过慢,所以我门需要一个垃圾回收的机制,来处理程序运行过程中产生的垃圾 当一个对象没有任何的变量或属性对它进行引用 ...

  6. Nginx-HTTP之静态网页访问流程分析二

    11. HTTP 阶段执行 下面会依次执行以下阶段: NGX_HTTP_SERVER_REWRITE_PHASE: 在将请求的 URI 与 location 表达式匹配前,修改请求的 URI (所谓重 ...

  7. Nginx之进程间的通信机制(共享内存、原子操作)

    1. 概述 Linux 提供了多种进程间传递消息的方式,如共享内存.套接字.管道.消息队列.信号等,而 Nginx 框架使用了 3 种传递消息的传递方式:共享内存.套接字.信号. 在进程间访问共享资源 ...

  8. Java-NIO 之 Buffer 与 Channel

    NIO:一种同步非阻塞的 I/O 模型,也是 I/O 多路复用的基础. 同步与异步 同步:发起一个调用后,被调用者未处理完请求之前,调用不返回. 异步:发起一个调用后,立刻得到被调用者的回应表示已接收 ...

  9. 使用KerasNet

    1.安装Python3.6,必须是3.6因为当前KerasNet的配套版本是3.6 https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64 ...

  10. 升级到Android Studio3.x遇到的问题及解决方案

    升级到Android Studio3.x遇到的问题及解决方案 转 https://www.2cto.com/kf/201711/695736.html 升级到Android Studio3.0遇到的问 ...