Kafka入门与实践
上QQ阅读APP看书,第一时间看更新

1.1 Kafka背景

随着信息技术的快速发展及互联网用户规模的急剧增长,计算机所存储的信息量正呈爆炸式增长,目前数据量已进入大规模和超大规模的海量数据时代,如何高效地存储、分析、处理和挖掘海量数据已成为技术研究领域的热点和难点问题。当前出现的云存储、分布式存储系统、NoSQL数据库及列存储等前沿技术在海量数据的驱使下,正日新月异地向前发展,采用这些技术来处理大数据成为一种发展趋势。而如何采集和运营管理、分析这些数据也是大数据处理中一个至关重要的组成环节,这就需要相应的基础设施对其提供支持。针对这个需求,当前业界已有很多开源的消息系统应运而生,本书介绍的Kafka就是当前流行的一款非常优秀的消息系统。

Kafka是一款开源的、轻量级的、分布式、可分区和具有复制备份的(Replicated)、基于ZooKeeper协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,Kafka能够很好地处理活跃的流数据,使得数据在各个子系统中高性能、低延迟地不停流转。

据Kafka官方网站介绍,Kafka定位就是一个分布式流处理平台。在官方看来,作为一个流式处理平台,必须具备以下3个关键特性。

● 能够允许发布和订阅流数据。从这个角度来讲,平台更像一个消息队列或者企业级的

消息系统。

● 存储流数据时提供相应的容错机制。

● 当流数据到达时能够被及时处理。

Kafka能够很好满足以上3个特性,通过Kafka能够很好地建立实时流式数据通道,由该通道可靠地获取系统或应用程序的数据,也可以通过Kafka方便地构建实时流数据应用来转换或是对流式数据进行响应处理。特别是在0.10版本之后,Kafka推出了Kafka Streams,这让Kafka对流数据处理变得更加方便。

Kafka已发布多个版本。截止到编写本书时,Kafka的最新版本为0.10.1.1,因此本书内容都是基于该版本进行讲解。