Apache Kafka是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。它设计为处理多种来源的数据流,并将它们交付到多个消费者。简而言之,它可以移动大量数据,不仅是从A点移到B点,而是能从A到Z的多个点移到任何您想要的位置,并且可以同时进行。
Apache Kafka 可以取代传统的企业级消息传递系统。它最初是linkedin为处理每天1.4万亿条消息而开发的一个内部系统,现已成为应用于各式各样企业需求的开源数据流处理解决方案。
Kafka主要有两类用途:构建能让系统或应用之间可靠地获取数据的实时流数据管道;构建转换或响应流数据的实时流应用
Kafka有四个核心API,分别为:
Producer API:该接口允许应用发布一个流数据到一个或多个topics。
Consumer API:该接口允许应用订阅一个或多个topics然后处理这些topics中的流数据。
Streams API:该接口允许应用作为一个流处理器(stream processor) ,从一个或多个topics 的输入流中消费数据,然后转换并生产数据到一个或多个topics的输出流中。
Connector API:该接口允许构建和运行可重用的生产者(Producer)或者消费者(Consumer),这些生产者或消费者讲Kafka中的topics和现有的应用或者数据系统(如数据库)连接起来。比如一个connector 可以连接到一个关系型数据库从而可以捕捉到数据表中的任何变化,然后进行响应的处理。
Apache Kafka是一个分布式发布—订阅消息系统和一个强大的队列,可以处理大量的数据,并使你能够将消息从一个端点传递到另一个端点。Kafka适合离线和在线消息消费。Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。Kafka构建在ZooKeeper同步服务之上。它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。
Kafka 是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。
微信扫码关注公众号
获取更多考试热门资料