人生第一份工作■Kafka架构原理,也就这么回事
【51CTO.com原创稿件】本文主要讲解 Kafka 是什么、Kafka 的架构包括工作流程和存储机制 , 以及生产者和消费者 。
本文插图
图片来自 Pexels
最终大家会掌握 Kafka 中最重要的概念 , 分别是 Broker、Producer、Consumer、Consumer Group、Topic、Partition、Replica、Leader、Follower , 这是学会和理解 Kafka 的基础和必备内容 。
定义
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue) , 主要应用与大数据实时处理领域 。
消息队列
Kafka 本质上是一个 MQ(Message Queue) , 使用消息队列的好处?(面试会问)
- 解耦:允许我们独立的扩展或修改队列两边的处理过程 。
- 可恢复性:即使一个处理消息的进程挂掉 , 加入队列中的消息仍然可以在系统恢复后被处理 。
- 缓冲:有助于解决生产消息和消费消息的处理速度不一致的情况 。
- 灵活性&峰值处理能力:不会因为突发的超负荷的请求而完全崩溃 , 消息队列能够使关键组件顶住突发的访问压力 。
- 异步通信:消息队列允许用户把消息放入队列但不立即处理它 。
本文插图
一对多 , 生产者将消息发布到 Topic 中 , 有多个消费者订阅该主题 , 发布到 Topic 的消息会被所有订阅者消费 , 被消费的数据不会立即从 Topic 清除 。
架构
本文插图
Kafka 存储的消息来自任意多被称为 Producer 生产者的进程 。 数据从而可以被发布到不同的 Topic 主题下的不同 Partition 分区 。
在一个分区内 , 这些消息被索引并连同时间戳存储在一起 。 其它被称为 Consumer 消费者的进程可以从分区订阅消息 。
Kafka 运行在一个由一台或多台服务器组成的集群上 , 并且分区可以跨集群结点分布 。
下面给出 Kafka 一些重要概念 , 让大家对 Kafka 有个整体的认识和感知 , 后面还会详细的解析每一个概念的作用以及更深入的原理:
- Producer: 消息生产者 , 向 Kafka Broker 发消息的客户端 。
- Consumer:消息消费者 , 从 Kafka Broker 取消息的客户端 。
- Consumer Group:消费者组(CG) , 消费者组内每个消费者负责消费不同分区的数据 , 提高消费能力 。 一个分区只能由组内一个消费者消费 , 消费者组之间互不影响 。 所有的消费者都属于某个消费者组 , 即消费者组是逻辑上的一个订阅者 。
- Broker:一台 Kafka 机器就是一个 Broker 。 一个集群由多个 Broker 组成 。 一个 Broker 可以容纳多个 Topic 。
- Topic:可以理解为一个队列 , Topic 将消息分类 , 生产者和消费者面向的是同一个 Topic 。
- Partition:为了实现扩展性 , 提高并发能力 , 一个非常大的 Topic 可以分布到多个 Broker (即服务器)上 , 一个 Topic 可以分为多个 Partition , 每个 Partition 是一个 有序的队列 。
- Replica:副本 , 为实现备份的功能 , 保证集群中的某个节点发生故障时 , 该节点上的 Partition 数据不丢失 , 且 Kafka 仍然能够继续工作 , Kafka 提供了副本机制 , 一个 Topic 的每个分区都有若干个副本 , 一个 Leader 和若干个 Follower 。
- Leader:每个分区多个副本的“主”副本 , 生产者发送数据的对象 , 以及消费者消费数据的对象 , 都是 Leader 。
- Follower:每个分区多个副本的“从”副本 , 实时从 Leader 中同步数据 , 保持和 Leader 数据的同步 。 Leader 发生故障时 , 某个 Follower 还会成为新的 Leader 。
- 『烨然聊科技』走上人生巅峰后,现生活怎么样了?,支付宝大爷因名字成网红
- 『专场』没找到工作?广东为期100天的网络招聘会来了
- 云安全联盟区块链安全工作组启动,e签宝助力推动区块链安全发展
- 『砍柴网』有道翻译官推出检疫特别版 助力全国百万公安民警跨境检疫工作
- [西北信息报社]陕西出台《决定》加强检察公益诉讼工作
- 重组后第一份年报出炉 TCL科技如何“提质增效”
- 『抓好』一起为大地添绿(统筹抓好改革发展稳定各项工作)
- 【三江源国家】青海自然保护地体系示范省建设工作取得积极进展
- 有道翻译官推出检疫特别版 助力全国百万公安民警跨境检疫工作
- 工作:发布会直击| 复工以来 河南省消防救援队帮助整改火灾隐患10402处