1.kafka
kafka是类jms消息队列,与jms不同的是,kafka可以有多个消费者consumer主动拉取数据。
2.topic
topic是逻辑上:一个目标发送目的地,物理上:一个磁盘上的partition的目录。
一个topic可以对应多个partition;
一个partition可以划分多个segment; 一个segment的默认值是1G;
一个segment包括index 和 log 文件。
注意点:
topic不仅可以设置partition,还可以设置replication number,并且在多个replication中选取leader。 该主从模式与mysql的主从不同,此模式下所有的读写操作均通过leader管理,而mysql的主从则是为了读写分离。在kafka中,读写操作都是leader; 在mysql中,leader负责写,follower负责读。
3.producer
producer负责数据生产到broker中,producer决定数据分发策略,默认使用key的哈希值对分区数取模算法,该算法和hdfs中partition算法相同。
4.broker
broker是当前服务器上运行的kafka的实例,在kafka集群中每一个broker对应一个唯一的ID,即brokerId。
broker不关心数据何时生产,何时消费,它只关心数据存储。
5.consumergroup
consumergroup是数据消费组,该组可以设置多个,组与组之间消费的数据都是一样的;
在同一个组内可以有多个consumer,在同一