阅读 194

kafka的架构(kafka的架构包括哪些组件)

架构案例

image.png

  • Kafka Cluster: 由多个服务器组成。每个服务器单独的名字broker(掮客)。

  • kafka broker: kafka集群中包含的服务器

  • Kafka Producer: 消息生产者、发布消息到kafka集群的终端或服务。

  • Kafka consumer: 消息消费者、负责消费数据。

  • Kafka Topic: 主题,一类消息的名称。存储数据时将一类数据存放在某个topci下,消费数据也是消费一类数据。

    • 订单系统:创建一个topic,叫做order。

    • 用户系统:创建一个topic,叫做user。

    • 商品系统:创建一个topic,叫做product。

注意:Kafka的元数据都是存放在zookeeper中。

架构剖析

kafka架构的内部细节剖析:

image.png

image.png

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

  • Broker:kafka集群中包含一个或者多个服务实例,这种服务实例被称为Broker

  • Topic:每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic

  • Partition:分区,物理上的概念,每个topic包含一个或多个partition,一个partition对应一个文件夹,这个文件夹下存储partition的数据和索引文件,每个partition内部是有序的

关系解释

  • Topic & Partition

    • Topic就是数据主题,是数据记录发布的地方,可以用来区分业务系统。

    • Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。

    • 一个topic为一类消息,每条消息必须指定一个topic。

    • 对于每一个topic, Kafka集群都会维持一个分区日志。如下图

    • 每个分区都是有序且顺序不可变的记录集,并且不断地追加到结构化的commit log文件。

    • 分区中的每一个记录都会分配一个id号来表示顺序,称之为offffset,offffset用来唯一的标识分区中每一条记录。

image.png

image.png

在每一个消费者中唯一保存的元数据是offffset(偏移量)即消费在log中的位置,偏移量由消费者所控制:通常在读取记录后,消费者会以线性的方式增加偏移量,但是实际上,由于这个位置由消费者控制,所以消费者可以采用任何顺序来消费记录。例如,一个消费者可以重置到一个旧的偏移量,从而重新处理过去的数据;也可以跳过最近的记录,从"现在"开始消费。

这些细节说明Kafka 消费者是非常廉价的—消费者的增加和减少,对集群或者其他消费者没有多大的影响。


作者:RG
链接:https://juejin.cn/post/7030730856771616775


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐