Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。
Kafka源码很少,就两个主要的包,kafka-core, kafka-client。它主要由几个部分组成:
- Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker
- Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
- Partition Parition是物理上的概念,每个Topic包含一个或多个Partition.
- Producer 负责发布消息到Kafka broker
- Consumer 消息消费者,向Kafka broker读取消息的客户端。
- Consumer Group 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
采用编译环境:scala IDE Scala 2.10.5 Winy