图解 Kafka,触类旁通
大家好,我是顶级架构师。
目录
前言
基础
生产消费者
Topics 主题
Partitions 分区
架构
前言
Kafka 是主流的消息流系统,其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识。
基础
生产者消费者
Topics 主题
Topic 是生产者发送消息的目标地址,是消费者的监听目标。
Kafka 中有一个【consumer-group(消费者组)】的概念。
这样有助于消息的负载均衡,也方便扩展消费者。
Topic 扮演一个消息的队列。
接下来,消息会被发送给此 Topic 的消费者。
Partitions 分区
上面 Topic 的描述中,把 Topic 看做了一个队列,实际上,一个 Topic 是由多个队列组成的,被称为【Partition(分区)】。
也可以配置 Topic,让同类型的消息都在同一个 Partition。
例如,处理用户消息,可以让某一个用户所有消息都在一个 Partition。
例如,用户 1 发送了 3 条消息:A、B、C,默认情况下,这 3 条消息是在不同的 Partition 中(如 P1、P2、P3)。另外,搜索公众号Java后端栈后台回复“面试”,获取一份惊喜礼包。
这个功能有什么用呢?这是为了提供消息的【有序性】。
架构
ZooKeeper 管理者所有的 Topic 和 Partition。扩展:接私活儿
Topic A 的 Partition #1 有 3 份,分布在各个 Node 上。这样可以增加 Kafka 的可靠性和系统弹性。
即使某个 Node 节点出现了故障,也不用担心消息的损坏。
感谢阅读,希望对你有所帮助!😃
欢迎大家进行观点的探讨和碰撞,各抒己见。如果你有疑问,也可以找我沟通和交流。
最后给读者整理了一份BAT大厂面试真题,需要的可扫码回复“面试题”即可获取。
「顶级架构师」建立了读者架构师交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起交流学习。
扫描添加好友邀你进架构师群,加我时注明【姓名+公司+职位】
版权申明:内容来源网络,版权归原作者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。
猜你还想看
SpringBoot + Elasticsearch7.6 实现查询及高亮分词查询,超级详细!