近几年, Apache Kafka的应用有了显著的增长。Kafka最新的客户包括Uber, Twitter, Netflix, LinkedIn, Yahoo, Cisco, Goldman Sachs 等。Kafka是个高可扩展的生产消费者系统。利用Kafka系统,用户可以发布大量的消息, 同时也能实时订阅消费消息。本文旨在说明Kafka如何在大数据生态系统中扮演越来越重要的角色。
以不变应万变模式的短板
长期以来,数据库成为人们存放和处理感兴趣数据的首选。数据库厂商不断发布新功能 (例如 搜索,流式处理和分析),以确保在数据库内能完成更多有意思的工作。然而,基于以下2点原因,数据库模式不再是理想的方案。
原因一:当人们试图采集其他类型的数据集(例如用户行为跟踪记录,运营性能指标,应用日志等), 数据库变的越来越昂贵。相比于交易数据,这些数据集同等重要,因为利用它们能更深入地理解业务,然而它们的数据量会大到2-3倍的规模。由于传统数据库通常依赖于昂贵又高端的存储系统(例如SAN), 因而数据库存储所有数据集的开销变的极其昂贵。
其次,随着越来越多的功能堆砌,数据库变的过于复杂,在维护之前遗留版本的同时,很难增加新的功能。数据库厂商跨多年的发布变的越来越普遍。
专用分布式系统的涌现
在近10年, 为了克服这些短板,人们开始构建专用系统。这些系统生而为了单一的目标,但能够非常好地完成。因为他们的简单性,在商业硬件上构建类似的分布式系统逐渐可行。因而,相比 以SAN为存储基础的数据库,这些专用系统性价比更高。通常,类似系统是构建在开源项目上,进而降低了所有权的成本。而且,由于这些专用系统只关注单一目标,相比于大而全的系统,他们可以发