初识Kafka构造组成

在刚学习kafka的时候,有时候会比较纳闷broker是什么?topic又是什么?一台机器上有多少broker?又有多少的topic和partition?由下面这张图来初识我们的kafka:

上图中包含了一个kafka集群的所有组件
1)三台broker集群
2)三台zookeeper集群
3)一个生产者producer
4)一组消费者consumer group
5)一个单独的消费者consumer3
6)一个topic1,其中partition是2,表示每个topic有两个分区,replica是3,表示每个分区有三个副本,分布在每台broker上。

蓝色消息发送的流程
1)producer发送蓝色消息到topic1;
2)假设发送到broker1的topic1中的partition1中,此时这个partition1自动成为了当前partition三个副本replicas的leader,则broker2和broker3的两个partition1自然的成为follower;
3)由当前的replica leader负责当前分区消息的读和写,另外两个分区follower会从leader同步消息。
4)consumer group的consumer1去消费partition1的leader中的消息,则consumer2是不能消费的;同一组内只有一个consumer可以消费消息。

红色消息发送的流程
1)producer发送蓝色消息到topic1;
2)此时发送到broker2的topic1中的partition2中,此时这个partition2自动成为了当前partition三个副本replicas的leader,则broker1和broker3的两个partition2自然的成为follower;
3)由当前的replica leader负责当前分区消息的读和写,另外两个分区follower会从leader同步消息。
4)consumer3去消费partition2的leader中的消息。

再简单模拟了消息的分布和生产消费过程后,我们具体说明每个组成的功能
1)producer:消息生产者,向kafka的broker发送消息的客户端。
2)consumer: :消息消费者,向 kafka broker拉取消息的客户端;
3)consumer group:消费者组,由多个 consumer 组成。 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
4)broker一台kafka服务器就是一个broker,一个集群在有多个broker。一个broker内可存放逗哥topic。
5 )topic :可以理解为一个队列, 生产者和消费者面向的都是一个 topic。
6 )partition一个非常大的topic可以分布到多个broker上,一个 topic分为多个partition,每个partition是一个有序的队列。
7)Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,使得kafka仍然能够继续工作,kafka提供了副本机制,一个topic的每个分区都有若干个副本,一个leader和若干个follower。
8 )leader:每个分区多个副本的主节点,负责数据的读写,即生产者发送数据的对象,以及消费者消费数据的对象都是leader。
9 )follower:每个分区多个副本中的从节点,实时从leader中同步数据,保持和leader数据
同步。leader发生故障时,某个follower会成为新的leader。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后季暖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值