Topic与Partition

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Topic与Partition相关的知识,希望对你有一定的参考价值。

参考技术A 示意图

1. Topic:

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic(主题).

2.Partition:

Partition是物理上的概念,每个Topic包含一个或多个partition.

Topic在逻辑上可以被认为是一个Queue,每条消息都必须指定它的Topic,可以简单理解为

必须指明把这条消息放进那个Queue里

3.说明:

为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件.

若创建Topic1和Topic2两个Topic,且分别有13和19个分区

因为每条消息都被Append到该Partition中,属于顺序写磁盘,因此效率非常高(经验证,顺序写磁盘效率比随机写内存还要高,这是kafka高吞吐率的一个很重要的保证)

对于传统的Messqge queue而言,一般会删除已经被消费的消息,而Kafka集群会保留所有的消息,无论其被消费与否.当然因为磁盘限制,不可能永久保留所有数据(实际上也没必要),

因此Kafka提供两种策略删除旧数据,

一: 是基于时间

二: 是基于Partition文件大小.例如可以通过配置

$KAFKA_HOME/config/server.properties,让Kafka删除一周前的数据,也可在Partition文件超过1GB时删除旧数据,配置如下所示。

Kafka拓扑结构

1. Producer:

消息生产者,发布消息到kafka集群的终端或服务

以上是关于Topic与Partition的主要内容,如果未能解决你的问题,请参考以下文章

Kafka源码分析 Topic与Partition使用

请问topic与theme有啥区别?

Topic与Partition

Kafka管理与监控——彻底删除topic

Topic 与 Partition

activeMQ中queue 与 topic 区别