前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门Kafka系列(3)——Kafka架构之宏微观分析

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

作者头像
大数据梦想家
发布2021-01-27 15:57:55
4240
发布2021-01-27 15:57:55
举报

作为快速入门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 会成为新的 leader。

知识拓展:

1.一个broker只能有一个leader,一个broker可以只有一个Topic一个Partition 2.副本不负责数据的读取响应,消费者只能从Lead读取数据,Follower只是为了提高容错性 3.消费者的并发度取决于分区数量 4.分区数据副本数量<=Broker的数量(不允许一个分区的数据副本放在同一个Broker)


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

本篇博客的知识总结就到这里了,下一篇博客将为大家带来Kafka的主要组件说明,敬请期待~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kafka技术架构
    • 宏观
      • 微观
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档