Kafka系统学习(4)

网友投稿 719 2022-05-29

Kafka角色功能

(1) Topic:Kafka 将一组消息抽象归纳为一个主题(Topic),一个主题就是对消息的一个分类。生产者将消息发送到特定主题,消费者订阅主题或主题的某些分区进行消费。每条发布到Kafka的消息都有一个类别,这个类别被称为Topic,也可以理解为一个存储消息的队列。例如:天气作为一个Topic,每天的温度消息就可以存储在“天气”这个队列里。如图所示。

(2) Partition: 为了提高Kafka的吞吐量,物理上把Topic分成一个或多个Partition,每个Partition都是有序且不可变的消息队列。每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。分区使得 Kafka在并发处理上变得更加容易,理论上来说,分区数越多吞吐越高,但这要根据集群实际环境及业务场景而定。同时,分区也是Kafka保证消息被顺序消费以及对消息进行负载均衡的基础。Kafka只能保证一个分区之内消息的有序性,并不能保证跨分区消息的有序性。每条消息被追加到相应的分区中,是顺序写磁盘,因此效率非常高,这是Kafka 高吞吐率的一个重要保证。同时与传统消息系统不同的是,Kafka并不会立即删除已被消费的消息。

(3) offset:每条消息在文件中的位置称为offset,offset是一个long型数字,它唯一

标记一条消息。消费者通过(offset、Partition、Topic)跟踪记录。结构如图所示。

Kafka系统学习(4)

Kafka

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:8.5 C++函数指针变量调用函数 | 求两个数中的大数
下一篇:sar命令,linux中最为全面的性能分析工具之一
相关文章