0
点赞
收藏
分享

微信扫一扫

11_Kafka高级_工作流程

穆熙沐 2022-11-17 阅读 70


kafka的工作流程和文件存储机制:

11_Kafka高级_工作流程_偏移量


11_Kafka高级_工作流程_偏移量_02


当生产者往一个不存在的主题发送数据的时候,也可以发送。自己会帮你创建主题,一个分区,一个副本。是server.properties文件里面配置的。这是默认值。

我们一般会先创建topic叫做topicA

topicA有三个分区,两个副本。

副本数=2,是说,leader+follower=2

11_Kafka高级_工作流程_数据_03


partition-0的follower一定不会和partition-0的leader在同一个broker(节点)。因为没有任何意义。

11_Kafka高级_工作流程_偏移量_04


现在生产者往三个broker里面发送消息。可以批量发送,当然一个批次里面只有一条数据也是可以的,也可以一个一个发送。

11_Kafka高级_工作流程_偏移量_05


11_Kafka高级_工作流程_数据_06


这些东西是偏移量。总共发送了15条消息。每一个分区里面维护了一个从头开始的偏移量。不是一个全局的偏移量。

follower做什么事情?

它是一个备份,主动找leader去做同步,备份leader里面备份数据。

但是就算同步了,可能还会数据丢失。

11_Kafka高级_工作流程_偏移量_07


消费者要保存的偏移量就是offset

11_Kafka高级_工作流程_kafka_08


存数据的时候,给每一个人offset,后面写代码可以看到这个内容。我们可以在producer发送完数据之后,再要求他返回偏移量。就能看到两个分区同步增长。

0号分区有个22,1号分区同样有22。

如果全局有个偏移量的话,不可能同一个主题里面的两个分区,出现两个22.

11_Kafka高级_工作流程_kafka_09


11_Kafka高级_工作流程_偏移量_10


11_Kafka高级_工作流程_kafka_11


每个人都维护了独立的

对于kafkaMQ来说,它不能保证消息的全局有序性,只能保证,区内有序,有序指的是,生产顺序和消费顺序有序,但是如果是全局的话,就不一定有序。

11_Kafka高级_工作流程_偏移量_12


kafka种的消息是以主题分类的。

生产者和消费者都是面向主题的。

11_Kafka高级_工作流程_偏移量_13


11_Kafka高级_工作流程_数据_14


topic是逻辑上的,找不到文件夹。

我们之前看到的数据是以topic+分区号来命名的(first-0)

没有看到topicA这个文件夹。真正存在的是分区。分区时物理上的概念。


举报

相关推荐

0 条评论