Kafka架构

首先,如果您不确定Kakfa是什么,请参阅这篇文章(http://cloudurable.com/blog/what-is-kafka/index.html)。

Kafka包括记录,主题,消费者,生产者,Broker,日志,分区和集群。记录可以有键(可选),值和时间戳。Kafka记录是不可变的。Kafka主题是记录流(“/ orders”,“/ user-signups”)。您可以将主题视为Feed名称。主题有一个日志,它是主题在磁盘上的存储。主题日志被分解成分区和段。 Kafka Producer API用于生成数据记录流。Kafka消费者API用于从Kafka消费一串记录。Broker是在Kafka集群中运行的Kafka服务器。Kafka Broker组成一个集群。 Kafka集群由许多服务器上的许多Broker组成。Broker有时指的是更多的逻辑系统或整个Kafka。

Kafka架构:主题,生产者和消费者

Kafka使用ZooKeeper来管理集群。 ZooKeeper用于协调Broker/集群拓扑。 ZooKeeper是配置信息一致性的文件系统。 ZooKeeper用于Broker、主题、分区的leader选举。

Kafka架构:核心的Kafka

Kafka需要ZooKeeper

Kafka使用ZooKeeper进行Kafka Broker和主题分区对leader选举。 Kafka使用ZooKeeper来管理形成集群的Kafka Broker的服务发现。 ZooKeeper将拓扑更改发送到Kafka,因此群集中的每个节点都知道新的Broker何时加入,Broker消失,主题被删除或添加了主题等。ZooKeeper提供了Kafka群集配置的同步视图。

Kafka生产者,消费者,主题细节

Kafka生产者写信给主题。Kafka消费者从主题中读出。主题与磁盘上的数据结构的日志相关联。 Kafka将记录从生产者追加到主题日志的末尾。主题日志由许多分散在多个文件上的分区组成,这些分区可以在多个Kafka集群节点上传播。消费者以自己的节奏从Kafka主题中读取,并可以选择主题日志中的哪些位置(偏移量)。每个消费者组织跟踪他们上次读取的偏离量。 Kafka在群集中的不同节点上分发主题日志分区,以实现具有水平可伸缩性的高性能。扩展分区有助于快速写入数据。主题日志分区是Kafka的方式来分析对主题日志的读写。此外,需要分区以使消费者组中的多个消费者同时工作。 Kafka将分区复制到许多节点以提供故障切换。

Kafka架构:主题分区,消费者组,偏移和生产者

Kafka规模和速度

如果多个生产者和消费者同时读写相同的Kafka主题日志,Kafka的规模如何?第一个Kafka是快速的,Kafka顺序地写入文件系统,这是快速的。在现代快速驱动器上,Kafka可以轻松地写入高达700 MB或更多字节的数据。Kafka通过将主题日志分割成分区来伸缩写入和读取。召回主题日志可以分为多个分区,可以存储在多个不同的服务器上,而这些服务器可以使用多个磁盘。多个生产者可以写入相同主题的不同分区。来自多个消费者组的多个消费者可以有效地从不同的分区读取。

Kafka Broker

Kafka集群由多个Kafka Broker组成。每个Kafka Broker都有一个唯一的ID(号码)。 Kafka Brokers包含主题日志分区。连接到一个Broker引导客户端到整个Kafka集群。对于故障转移,您要从至少三到五个Broker开始。如果需要,Kafka集群可以在集群中拥有10,100或1,000个代理。

Kafka集群,故障转移,ISR

Kafka支持复制以支持故障转移。回想一下,Kafka使用ZooKeeper将Kafka Brokers形成一个集群,Kafka集群中的每个节点都被称为Kafka Broker。主题分区可跨多个节点复制以进行故障转移。该主题应具有大于1(2或3)的复制因子。例如,如果您在AWS中运行,您将希望能够在单个可用区域中断时生存。如果一个Kafka Broker失败,则作为ISR(同步复制品)的Kafka Broker可以提供数据。

Kafka故障转移与Kafka灾难恢复

Kafka使用复制进行故障切换。 Kafka主题日志分区的复制允许机架或AWS可用区域(AZ)发生故障。您需要至少3个复制因子才能在单次可用区域故障中生存。您需要使用Mirror Maker(Kafka核心附带的Kafka实用程序)进行灾难恢复。 Mirror Maker将Kafka集群复制到另一个数据中心或AWS区域。他们称之为Mirror Maker镜像,不要与复制混淆。

请注意,关于如何设置Kafka集群本身,没有任何硬而快的规则。例如,您可以将整个集群设置为单个可用区域,以便您可以使用AWS增强的网络和放置组来获得更高的吞吐量,然后使用Mirror Maker将集群映射到与热备用的同一区域中的另一个可用区域 。

Kafka架构:Kafka ZooKeeper协调

本文分享自微信公众号 - IT技术精选文摘(ITHK01),作者:Bill译

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kafka详细设计及其生态系统

    Kafka生态-Kafka Core,Kafka Streams,Kafka Connect,Kafka REST Proxy和Schema Registry ...

    用户1263954
  • MongoDB和数据流:使用MongoDB作为Kafka消费者

    数据流 在当今的数据环境中,没有一个系统可以提供所有必需的观点来提供真正的洞察力。从数据中获取完整含义需要混合来自多个来源的大量信息。 与此同时,我们不耐烦地...

    用户1263954
  • IM系统的MQ消息中间件选型:Kafka还是RabbitMQ?

    用户1263954
  • 书单丨Kafka这么厉害,难怪都在读这几本书

    基于2.0.0版本,从实战到深度的原理解析讲述Kafka的知识点、常见误区的解读、常见问题的解决方案及生态应用的扩展。

    博文视点Broadview
  • 云+社区技术沙龙:Kafka meetup 深圳站报名开启

    如果说 2018 年是技术大爆炸年,那么 Apache Kafka 绝对是其中闪亮的新星。

    云加社区技术沙龙
  • 重磅发布:Kafka迎来1.0.0版本,正式告别四位数版本号

    Kafka 从首次发布之日起,已经走过了七个年头。从最开始的大规模消息系统,发展成为功能完善的分布式流式处理平台,用于发布和订阅、存储及实时地处理大规模流数据。...

    Spark学习技巧
  • Kafka详细设计及其生态系统

    Kafka生态-Kafka Core,Kafka Streams,Kafka Connect,Kafka REST Proxy和Schema Registry ...

    用户1263954
  • Apache Kafka内核深度剖析

    目前来说市面上可以选择的消息队列非常多,像activemq,rabbitmq,zeromq已经被大多数人耳熟能详,特别像activemq早期应用在企业中的总线通...

    ThoughtWorks
  • Kafka详细的设计和生态系统

    Kafka 的核心是经纪人,主题,日志,分区和集群。核心也包括像 MirrorMaker 这样的相关工具。前面提到的是 Kafka,因为它存在于 Apache ...

    人工智能资讯小编
  • 什么是Kafka

    Kafka的增长是爆炸性的。财富500强企业中超过三分之一使用卡夫卡。这些公司包括十大旅游公司,十大银行中的七家,十大保险公司中的八家,十大电信公司中的九家,等...

    大数据弄潮儿

扫码关注云+社区

领取腾讯云代金券