Kafka入门教程(一):基本概念

Topic

逻辑概念,一个Topic代表了一类资源

Broker

物理概念,一个broker代表一台主机

Partition

逻辑概念,一个Topic可以创建多个Partition,每个partition内部,消息是顺序排列的,Partition和broker没有必然联系(可以参考Partition分配到broker的策略)。partition实现上类似于文件夹,一个partition就是一个存储kafka数据(称为log)的目录,一个partition只能位于一个broker上。

Partition顺序写磁盘,不需要关心锁的问题,保证了Kafka的高吞吐量;多个partition是为了解决磁盘IO的性能限制,如果需要保证消息顺序的话,要注意Producer的partition分配

Consumer

消费者,消费Kafka中存储的数据

Offset

offset记录了一个consumer在一个partition中消费数据的位置。

Producer

生产者,生产数据到Kafka

Consumer Group

一个Topic的一个Partition,只能被同一个ConsumerGroup的一个消费者消费,所以每个partition针对每个Group都有一个offset,offset由group和partition唯一指定;

注意:当使用高级消费,不指定Partition的时候,kafka-clients api会保证“一个Topic的一个Partition,只能被同一个ConsumerGroup的一个消费者消费”,但是使用低级消费,指定partition的时候,如果两个consumer的partition重合,则两个consumer都能够消费到数据,但是offset使用的还是同一个,会出现数据重复消费和丢失!

【参考链接】

Kafka背景及架构介绍(http://www.infoq.com/cn/articles/kafka-analysis-part-1)

KafkaPartition与Broker的映射关系(https://www.jianshu.com/p/5c4a915843a4)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181023G0RBP300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券