写点什么

Kafka 架构介绍

发布于: 2021 年 02 月 04 日
Kafka架构介绍

Kafka 基本组成

生产者 —  将消息发送给以 Topic 命名的消息队列 Queue 中

消费者 — 订阅以 Topic 命名的消息队列 Queue 中的消息

Kafka 集群由多个 Broker 组成,Topic 由多个 Partition 组成,每个 Partition 里的消息通过 Offset 来获取。

    1)Broker:一台 kafka 机器就是一个 Broker,一个集群由多个 Broker 组成,一个 Broker 可以容纳多个 Topic,每个 Broker 之间地位平等。

    2)Topic:物理上不同 Topic 的消息分开存储,逻辑上一个 Topic 虽然保存在一个或多个 Broker 上,但是用户指定 Topic 即可生成或消费,而不需要关心数据存放何处;

    3)Partition:为了可扩展性,一个大的 Topic 会被分为多个 Partition,从而分布到多台 Broker 上。Partition 中的每条消息都会被分配一个自增 Id(offset),Kafka 只保证按一个 Partition 中的顺序将消息发送给消费者,但不保证单个 Topic 中的多个 Partition 间的顺序;

    4)Offset:消息在 Topic 的 Partition 中的位置。同一个 Partition 中的消息随着消息的写入,其对应的 Offset 也自增

    

    5)Replica:副本。Topic 的 Partition 含有 N 个 Replica,N 为副本因子。其中一个 Replica 为 Leader,其他都为 Follower,Leader 处理 Partition 的所有读写请求,Follower 会定期同步 Leader 上的数据。

    6)Message:消息,通信的基本单元。每个 Producer 可以向一个 Topic 发布一些消息。

    7)Producer:消息生产者

    8)Consumer:消息消费者

    9)Consumer Group:消费者组,每个 Consumer 属于一个 Consumer Group;反过来,每个 Consumer Group 中可以包含多个 Consumer。一个 Partition 中的消息只会被相同的 Consumer Group 中的某个 Consumer 消费,每个 Consumer Group 消息消费是相互独立的。

    10)Zookeeper:存放 kafka 集群相关元数据的组件。会保存 Topic 的状态信息,例如:分区个数,分区组成,分区的分布情况等;保存 Broker 的状态信息;保存消费者的消费信息。通过这些,kafka 可以很好的将消息生产、存储、消费过程结合起来。


发布于: 2021 年 02 月 04 日阅读数: 38
用户头像

坚持分享接地气儿的架构技术文章! 2018.02.26 加入

同名微信公众号「架构精进之路」,专注软件架构研究,技术学习与职业成长!坚持原创总结、沉淀和分享,希望能带给大家一些引导和启发,感谢各位的支持(关注、点赞、分享)!

评论

发布
暂无评论
Kafka架构介绍