1. kafka是一个分布式的消息发布-订阅队列。
2. 其中有一些主要的概念:
Topic:
就是对放入队列的消息进行分类,分类消息分开储存,比如现在有订单消息和用户投诉消息,则分成订单topic和投诉topic
Message: 放入消息队列的一条一条的消息。
Producer: 消息的生产者,就是往队列里放消息(Push)的客户端。
Consumer: 消息的生产者,就是从队列里取消息(Pull)的客户端。
Broker:对应kafka的一个服务器端,如果是分布式,则可以有多个Broker,多个之间通过Zookeeper来进行协调。
Partition: 分区,每个topic又可以分为多个Partition,每个Partition之间保存不同数据。
3. 每个Producer往Kafka放数据的时候,会按照一定算法,放到其中Broker中主题的对应分区里。
4. 每个消费者在进行消费的时候可以组成一个group,当进行消费的时候,某一个组中只有一个consumer可以拿到该条数据。
5. 每个分区只有一个leader服务器,其他的全是follower,Leader负责处理生成的消息读写,follower负责对其进行备份。
6. 某主题的某一个分区的消息只会被同一个Consumer消费,每次都是同一个,这样就保证了同一个分区中数据被消费的顺序,多次消费也是该Consumer。
原文地址:http://www.cnblogs.com/ranger2016/p/3748165.html