126 Kafka名词解释和工做方式

Producer : 消息生产者,就是向kafka broker发消息的客户端。服务器

Consumer : 消息消费者,向kafka broker取消息的客户端ide

Topic : 能够理解为一个队列。队列

Consumer Group (CG): 这是kafka用来实现一个topic消息的广播(发给全部的consumer)和单播(发给任意一个consumer)的手段。一个topic能够有多个CG。topic的消息会复制(不是真的复制,是概念上的)到全部的CG,但每一个partion只会把消息发给该CG中的一个consumer。若是须要实现广播,只要每一个consumer有一个独立的CG就能够了。要实现单播只要全部的consumer在同一个CG。用CG还能够将consumer进行自由的分组而不须要屡次发送消息到不一样的topic。kafka

Broker : 一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker能够容纳多个topic。it

Partition: 为了实现扩展性,一个很是大的topic能够分布到多个broker(即服务器)上,一个topic能够分为多个partition,每一个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的总体(多个partition间)的顺序。io

Offset: kafka的存储文件都是按照offset.kafka来命名,用offset作名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件便可。固然the first offset就是00000000000.kafkaclass