前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kafka架构

Kafka架构

作者头像
用户1263954
发布2018-01-30 15:27:32
1.1K0
发布2018-01-30 15:27:32
举报
文章被收录于专栏:IT技术精选文摘IT技术精选文摘

首先,如果您不确定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协调

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT技术精选文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档