📜  Apache Kafka-简介

📅  最后修改于: 2020-12-03 02:54:06             🧑  作者: Mango


在大数据中,使用了大量的数据。关于数据,我们面临两个主要挑战。第一个挑战是如何收集大量数据,第二个挑战是分析收集的数据。为了克服这些挑战,您必须需要一个消息传递系统。

Kafka专为分布式高吞吐量系统而设计。 Kafka可以很好地替代传统的消息代理。与其他邮件系统相比,Kafka具有更好的吞吐量,内置的分区,复制和固有的容错能力,使其非常适合大型邮件处理应用程序。

什么是邮件系统?

消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,而不必担心如何共享数据。分布式消息传递基于可靠消息队列的概念。消息在客户端应用程序和消息传递系统之间异步排队。可以使用两种类型的消息传递模式-一种是点对点,另一种是发布-订阅(pub-sub)消息传递系统。大多数消息传递模式遵循pub-sub

点对点消息系统

在点对点系统中,消息将保留在队列中。一个或多个使用者可以使用队列中的消息,但是特定消息最多只能由一个使用者使用。使用者读取队列中的消息后,该消息将从该队列中消失。该系统的典型示例是订单处理系统,其中每个订单将由一个订单处理器处理,但是多个订单处理器可以同时工作。下图描述了该结构。

点对点消息系统

发布-订阅消息系统

在发布-订阅系统中,消息保留在主题中。与点对点系统不同,消费者可以订阅一个或多个主题,并消费该主题中的所有消息。在发布-订阅系统中,消息生产者称为发布者,消息使用者称为订阅者。一个真实的例子是Dish TV,它发布了体育,电影,音乐等不同的频道,任何人都可以订阅自己的频道集,并在订阅频道可用时获取它们。

发布-订阅消息系统

什么是卡夫卡?

Apache Kafka是一个分布式的发布-订阅消息传递系统,一个健壮的队列,可以处理大量数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适用于离线和在线消息消费。 Kafka消息将保留在磁盘上,并在群集内复制,以防止数据丢失。 Kafka建立在ZooKeeper同步服务之上。它与Apache Storm和Spark集成得很好,可以进行实时流数据分析。

好处

以下是Kafka的一些好处-

  • 可靠性-Kafka是分布式,分区,复制和容错的。

  • 可扩展性-Kafka消息传递系统轻松扩展,而无需停机。

  • 耐用性-Kafka使用分布式提交日志,这意味着消息会尽可能快地在磁盘上保留,因此是持久的。

  • 性能-Kafka具有高吞吐量,可以发布和订阅消息。即使存储了许多TB消息,它也可以保持稳定的性能。

Kafka速度非常快,可确保零停机时间和零数据丢失。

用例

Kafka可以在许多用例中使用。其中一些在下面列出-

  • 指标-Kafka通常用于操作监控数据。这涉及汇总来自分布式应用程序的统计信息,以生成操作数据的集中供稿。

  • 日志聚合解决方案-Kafka可在整个组织中使用,以从多个服务中收集日志,并以标准格式将其提供给多个消费者。

  • 流处理-诸如Storm和Spark Streaming之类的流行框架从一个主题读取数据,对其进行处理,并将处理后的数据写入一个新的主题,供用户和应用程序使用。 Kafka的坚固耐用性在流处理方面也非常有用。

极品卡夫卡

Kafka是用于处理所有实时数据源的统一平台。 Kafka支持低延迟消息传递,并在出现机器故障时保证容错能力。它具有处理大量不同消费者的能力。 Kafka速度非常快,每秒执行200万次写入。 Kafka将所有数据持久保存到磁盘,这实际上意味着所有写入都将进入OS(RAM)的页面缓存。这使得将数据从页面缓存传输到网络套接字非常有效。