首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Kafka 架构组成-只有概念

Kafka 架构组成-只有概念

原创
作者头像
_春华秋实
修改2025-01-22 17:41:22
修改2025-01-22 17:41:22
2130
举报

作为使用者,我们首先要理解 kafka 架构中的概念

Apache Kafka是一个分布式的基于发布订阅消息系统消息队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点

消息队列是一个用于接收消息、存储消息并且转发消息的中间件,主要是用于解决如下的场景:

  • 异步:A服务做了一些事情,异步发送消息给服务B;
  • 削峰/限流:有些服务(例如电商服务的秒杀),请求量很高,服务端处理不过来,那么请求先放到消息队列里面,然后服务端按照自己的能力来消费处理;
  • 解耦:应用之间减少代码的耦合,使得应用的部署更加灵活;

基本架构

架构组成概念

  1. Broker :一台 kafka 服务器就是一个 broker一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic
    1. topic 类似于 redis 中的 key,某些大吞吐量的 topic 可能会影响 broker 的效率
  2. Topic :消息标识,生产者和消费者通过 topic 区分消息类型,我们在收发消息时只需指定 topic。
  3. Partition: 消息分区,一个消息会被发送到某一个分区(Partition),为了提升系统的吞吐,分布式的存储处理消息
    1. 一个 topic 下通常有多个 partition,partition 分布在不同的 Broker 上,这使 Kafka 可以在多台机器上处理、存储消息,给 kafka 提供给了并行的消息处理能力和横向扩容能力
  4. Producer :消息生产者,就是向 kafka broker 发消息的客户端
  5. Consumer :消息消费者,向 kafka broker 取消息的客户端
  6. Consumer Group (CG):消费者组,由多个 consumer 组成。
    1. 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费(消费者数量不能超过分区数量,否则多余的消费者会处于空闲状态)
  7. Replica: 消息分区副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且 kafka 仍然能够继续工作,kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本, 一个 leader 和若干个 follower
    1. leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 leader
    2. follower:每个分区多个副本中的“从”,实时从 leader 中同步数据,保持和 leader 数据 的同步。leader 发生故障时,某个 follower 会成为新的 follower

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本架构
  • 架构组成概念
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档