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的主要内容,如果未能解决你的问题,请参考以下文章