原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_introduction.htm
在大数据中,使用了大量的数据。关于数据,我们有两个主要挑战。第一个挑战是如何收集大量数据,第二个挑战是分析收集的数据。为了克服这些挑战,您必须使用消息传递系统。
卡夫卡专为分布式高吞吐量系统而设计。卡夫卡倾向于非常好地取代传统的信息代理者。与其他消息系统相比,Kafka具有更好的吞吐量,内置分区,复制和固有容错功能,因此非常适合大型消息处理应用程序。
什么是消息系统?
消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不用担心如何共享数据。分布式消息传递基于可靠消息队列的概念。消息在客户端应用程序和消息传递系统之间异步排队。有两种类型的消息传递模式可用 - 一种是点对点的,另一种是发布 - 订阅(pub-sub)消息传递系统。大多数消息传递模式遵循pub-sub。点对点消息系统
在点对点系统中,消息被保存在一个队列中。一个或多个消费者可以消费队列中的消息,但是特定的消息只能由最多一个消费者消费。一旦消费者在队列中读取消息,消息就从该队列中消失。这个系统的典型例子是一个订单处理系统,其中每个订单将由一个订单处理器处理,但是多订单处理器也可以同时工作。下图描述了结构。
发布 - 订阅消息系统
在发布 - 订阅系统中,消息被保存在一个主题中。 与点对点系统不同,消费者可以订阅一个或多个主题并使用该主题中的所有消息。 在发布 - 订阅系统中,消息生产者称为发布者,消息消费者称为订阅者。 一个真实的例子是Dish TV,它发布体育,电影,音乐等不同的频道,任何人都可以订阅他们自己的频道,并在他们订阅的频道可用时获得。
什么是卡夫卡?
Apache Kafka是一个分布式的发布 - 订阅消息传递系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。卡夫卡适合离线和在线消息消费。卡夫卡消息被保存在磁盘上并在集群内复制以防止数据丢失。 Kafka建立在ZooKeeper同步服务之上。它与Apache Storm和Spark完美集成,用于实时流数据分析。优点
以下是卡夫卡的一些好处 -- 可靠性 - 卡夫卡是分布式,分区,复制和容错。
- 可扩展性 - Kafka消息系统无需停机即可轻松扩展。
- 耐久性 - Kafka使用分布式提交日志,这意味着消息尽可能快地保留在磁盘上,因此它是持久的。
- 性能 - Kafka对于发布和订阅消息都有很高的吞吐量。它保持稳定的性能,即使存储了许多TB的消息。
用例
卡夫卡可用于许多用例。其中一些列在下面 -
- 指标 - Kafka通常用于运营监控数据。这涉及汇总分布式应用程序的统计数据以生成操作数据的集中式提要。
- 日志聚合解决方案 - Kafka可以在整个组织中使用,从多个服务中收集日志,并以标准格式向多个消费者提供。
- 流处理 - 流行的框架(如Storm和Spark Streaming)可以从主题读取数据,对其进行处理,并将处理后的数据写入新主题,以供用户和应用程序使用。卡夫卡的强耐久性在流加工方面也非常有用。