一、Kafka的优势
Apache Kafka是一个开放源代码的分布式事件流平台,成千上万的公司使用它来实现高性
能数据管道,流分析,数据集成和关键任务等相关的应用程序。
二、技术架构
0)partition分区可以设置备份数,也可以设置被几个消费组消费,如上 分区0是设置了两个被匹配消费者组消费
1)Producer :消息生产者,就是向kafka broker发消息的客户端。
2)Consumer :消息消费者,向kafka broker取 消息的客户端
3)Topic :可以理解为一个队列。
4) Consumer Group (CG):kafka提供的可扩展且具有容错性的消费者机制。既然是一个组,那么组内必然可以有多个消费者或消费者实例(consumer instance),它们共享一个公共的ID,即group ID。组内的所有消费者协调在一起来消费订阅主题(subscribed topics)的所有分区(partition)。当然,每个分区只能由同一个消费组内的一个consumer来消费。
5)Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
6)Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的“每一条消息”都会被分配一个有序的id 即offset偏移量,有小到大编号。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
7)Offset(即id):kafka的存储文件的每个分区的偏移量都从0开始,不同分区之间的偏移量都是独立的,不会相互影响。
三、日志文件
概念的关联理解:
- 一个Topic分别存储在不同的partition中
- 一个partitioin对应着多个replica备份
- 一个relica对应着一个Log
- 一个Log对应多个LogSegment
- 而在LogSegment中存储着log文件、索引文件、其它文件
参考文档:Kafka 设计架构原理详细解析(超详细图解)_kafka原理和架构解析-CSDN博客
Kafka架构原理(超级详细)-CSDN博客
Kafka文件存储机制_kafka的文件储存机制-CSDN博客