一、功能介绍:
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:
- hadoop的批处理系统;
- 低延迟的实时系统、
- storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等
kafka采用scala语言编写,于2010年贡献给了Apache基金会并成为顶级开源 项目http://kafka.apache.org/25/javadoc/index.html
二、生产者+broker+消费者:
1、生产者发送消息,支持批量发送;
2、生产者发送消息,支持定时批量发送;
3、生产者发送消息,支持事务批量提交;
kafka消费topic是以group为单位来的,一个group消费一个topic。一个group能容纳多个consumer。consumer消费是以分区(partition)来的,一个consumer可以消费一个或多个partition,一个partition只能被一个consumer消费。
规则:
1、如果一个consumer group中的consumer个数多于topic中的partition的个数,多出来的consumer会闲置(idle),所以如果为了增加消费者能力,只简单增加消费者数量不一定会有用).
2、如果一个consumer group中的consumer个数小于topic中的partition的个数,会存在一个消费者,消费多个partition的情况,最优的情况消费者与分区数量相同。
三、生产者+broker(多个分区)+消费者:
四、生产者+broker(多个分区+多个副本)+消费者:
参考五,单个消费者,消费三个分区数据
五、生产者+broker(多个分区+多个副本)+消费者组(多个):
消费者组中各个消费者的消费的偏移量信息:
__consumer_offsets
这个topic是由kafka自动创建的,默认50个
[root@hadoop03 kafka-logs]# ll
total 224
-rw-r--r--. 1 root root 0 Mar 24 13:19 cleaner-offset-checkpoint
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consumer_offsets-0
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consumer_offsets-1
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consumer_offsets-10
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consumer_offsets-11
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consumer_offsets-12
drwxr-xr-x. 2 root root 4096 Mar 24 13:46 __consume