
Apache Kafka是消息引擎系统也是一个分布式流处理平台LinkedIn最开始有强烈的数据强实时处理方面的需求其内部的诸多子系统要执行多种类型的数据处理与分析主要包括业务系统和应用程序性能监控以及用户行为数据处理等。当时他们碰到的主要问题包括数据正确性不足。因为数据的收集主要采用轮询Polling的方式如何确定轮询的间隔时间就变成了一个高度经验化的事情。虽然可以采用一些类似于启发式算法Heuristic来帮助评估间隔时间值但一旦指定不当必然会造成较大的数据偏差。系统高度定制化维护成本高。各个业务子系统都需要对接数据收集模块引入了大量的定制开销和人工成本。为了解决这些问题LinkedIn工程师尝试过使用ActiveMQ来解决这些问题但效果并不理想。显然需要有一个“大一统”的系统来取代现有的工作方式而这个系统就是Kafka。Kafka在设计之初就旨在提供三个方面的特性提供一套API实现生产者和消费者降低网络传输和磁盘存储开销实现高伸缩性架构。