kafka
1.介绍
kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中所有动作流数据。
kafka的目的是通过Hadoop的并行加载机制来统一和离线的消息处理,也是为了通过集群来提供实时的消息。
- 特性:
- 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能保持长时间的稳定性能。
- 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数百万的消息。
- 支持通过kafka服务器和消费机集群来分区消息。
- 支持Hadoop并行数据加载。
- 相关术语
- Broker:kafka集群包含一个或多个服务器,这种服务器被称为broker。
- Topic:每条发布到kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
- Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition。
- Producer:负责发布消息到kafka broker。
- Consumer:消息消费者,向kafka broker读取消息的客户端。
- Consumer Group:每个Consumer属于一个特定的Consumer Group。(可为每个Consumer指定group name,若不指定group name则属于默认的group)