您的位置:首页 > 运维架构 > 网站架构

快速入门Kafka系列(3)——Kafka架构之宏微观分析

2020-05-07 04:19 85 查看

        作为快速入门Kafka系列的第三篇博客,本篇为大家带来的是Kafka架构之宏微观分析~

        码字不易,先赞后看!

文章目录

Kafka技术架构

宏观


宏观上,Kafka的架构包含四大部分

1、生产者API

允许应用程序发布记录流至一个或者多个kafka的主题(topics)。

2、消费者API

允许应用程序订阅一个或者多个主题,并处理这些主题接收到的记录流。

3、StreamsAPI

允许应用程序充当流处理器(stream processor),从一个或者多个主题获取输入流,并生产一个输出流到一个或 者多个主题,能够有效的变化输入流为输出流。

4、ConnectAPI

允许构建和运行可重用的生产者或者消费者,能够把kafka主题连接到现有的应用程序或数据系统。例如:一个连 接到关系数据库的连接器可能会获取每个表的变化。

微观

说明:kafka支持消息持久化,消费端为拉模型来拉取数据,消费状态和订阅关系有客户端负责维护,消息消费完 后,不会立即删除,会保留历史消息。因此支持多订阅时,消息只会存储一份就可以了。

内部细节


1)Producer:消息生产者,就是向 kafka broker 发消息的客户端;

2)Consumer :消息消费者,向 kafka broker 取消息的客户端;

3)Consumer Group (CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。

4)Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker可以容纳多个 topic。

5)Topic :可以理解为一个队列,生产者和消费者面向的都是一个 topic;每条发布到kafka集群的消息都必须有一个类别(topic)

6)Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列;

7)segment:一个partition当中存在多个segment文件段,每个segment分为两部分,.log文件和.index文件,其中.index文件是索引文件,主要用于快速查询.log文件当中数据的偏移量位置

8)Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且kafka 仍然能够继续工作,且kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,一个 leader 和若干个 follower。

9)leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 leader。

10)follower:每个分区多个副本中的“从”,实时从 leader 中同步数据,保持和 leader 数据的同步。leader 发生故障时,某个 follower 会成为新的 follower。

知识拓展:

1.一个broker只能有一个leader,一个broker可以只有一个Topic一个Partition

2.副本不负责数据的读取响应,消费者只能从Lead读取数据,Follower只是为了提高容错性

3.消费者的并发度取决于分区数量

4.分区数据副本数量<=Broker的数量(不允许一个分区的数据副本放在同一个Broker)

        好了,终于码完字了~本篇博客可谓是精华满满,对于刚学习Kafka的朋友可谓是十分良心了~如果你觉得对你有帮助,不妨带个点赞,点个关注,让更多的人受益٩(๑❛ᴗ❛๑)۶。

        本篇博客的知识总结就到这里了,下一篇博客将为大家带来

Kafka的主要组件说明
,敬请期待~
        
        

Alice菌 原创文章 276获赞 2834访问量 55万+ 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: