Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。
Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,由 Scala 和 Java 编写。Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。
这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像 Hadoop 一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka 的目的是通过 Hadoop 的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
kafka 的架构师 jay kreps 对于 kafka 的名称由来是这样讲的,由于 jay kreps 非常喜欢 franz kafka,并且觉得 kafka 这个名字很酷,因此取了个和消息传递系统完全不相干的名称 kafka,该名字并没有特别的含义。
Kafka 是一种高吞吐量的分布式发布订阅消息系统,有如下特性:
通过 O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件 Kafka 也可以支持每秒数百万的消息。支持通过 Kafka 服务器和消费机集群来分区消息。支持 Hadoop 并行数据加载。
kafka 的诞生,是为了解决 linkedin 的数据管道问题,起初 linkedin 采用了 ActiveMQ 来进行数据交换,大约是在 2010 年前后,那时的 ActiveMQ 还远远无法满足 linkedin 对数据传递系统的要求,经常由于各种缺陷而导致消息阻塞或者服务无法正常访问,为了能够解决这个问题,linkedin 决定研发自己的消息传递系统,当时 linkedin 的首席架构师 jay kreps 便开始组织团队进行消息传递系统的研发。