什么是Kafka
Kafka是一款分布式消息发布和订阅系统,它的特点是高性能、高吞吐量。
最早设计的目的是作为LinkedIn的活动流和运营数据的处理管道。这些数据主要是用来对用户做用户画像分析以及服务器性能数据的一些监控
所以kafka一开始设计的目标就是作为一个分布式、高吞吐量的消息系统,所以适合运用在大数据传输场景。
Kafka是用来构建实时的管道和流式的应用,它可以水平的扩展,而且还有容错机制,性能很高.
Kafka是一个分布式的数据流式传输平台。
在流式计算中,Kafka一般用来缓存数据,Spark通过消费Kafka的数据进行计算。
1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
2)Kafka最初是由LinkedIn公司开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高吞吐量,能达到每秒发百分级别的消息、低等待(延迟很小,速度很快,就是我生产者前一秒刚发送消息,消费者后一秒就收到消息了)的平台。
3)Kafka是一个分布式消息队列(分布式意味着可以在集群里面搭建)。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。
4)无论是kafka集群,还是consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。
Kafka的特点
作为一个数据流式传输平台,kafka有以下三大特点:
类似于消息队列和商业的消息系统,kafka提供对流式数据的发布和订阅
kafka提供一种持久的容错(Kafka提供副本数来解决容错问题,防止因为磁盘坏了,数据丢了)的方式存储流式数据
kafka拥有良好的性能,可以及时地处理流式数据