人生第一份工作■Kafka架构原理,也就这么回事


【51CTO.com原创稿件】本文主要讲解 Kafka 是什么、Kafka 的架构包括工作流程和存储机制 , 以及生产者和消费者 。
人生第一份工作■Kafka架构原理,也就这么回事
本文插图
图片来自 Pexels
最终大家会掌握 Kafka 中最重要的概念 , 分别是 Broker、Producer、Consumer、Consumer Group、Topic、Partition、Replica、Leader、Follower , 这是学会和理解 Kafka 的基础和必备内容 。
定义
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue) , 主要应用与大数据实时处理领域 。
消息队列
Kafka 本质上是一个 MQ(Message Queue) , 使用消息队列的好处?(面试会问)

  • 解耦:允许我们独立的扩展或修改队列两边的处理过程 。
  • 可恢复性:即使一个处理消息的进程挂掉 , 加入队列中的消息仍然可以在系统恢复后被处理 。
  • 缓冲:有助于解决生产消息和消费消息的处理速度不一致的情况 。
  • 灵活性&峰值处理能力:不会因为突发的超负荷的请求而完全崩溃 , 消息队列能够使关键组件顶住突发的访问压力 。
  • 异步通信:消息队列允许用户把消息放入队列但不立即处理它 。
发布/订阅模式
人生第一份工作■Kafka架构原理,也就这么回事
本文插图
一对多 , 生产者将消息发布到 Topic 中 , 有多个消费者订阅该主题 , 发布到 Topic 的消息会被所有订阅者消费 , 被消费的数据不会立即从 Topic 清除 。
架构
人生第一份工作■Kafka架构原理,也就这么回事
本文插图
Kafka 存储的消息来自任意多被称为 Producer 生产者的进程 。 数据从而可以被发布到不同的 Topic 主题下的不同 Partition 分区 。
在一个分区内 , 这些消息被索引并连同时间戳存储在一起 。 其它被称为 Consumer 消费者的进程可以从分区订阅消息 。
Kafka 运行在一个由一台或多台服务器组成的集群上 , 并且分区可以跨集群结点分布 。
下面给出 Kafka 一些重要概念 , 让大家对 Kafka 有个整体的认识和感知 , 后面还会详细的解析每一个概念的作用以及更深入的原理: