Apache Kafka的简单解释

数据挖掘 大数据 阿帕奇卡夫卡
2021-10-13 04:46:29

任何人都可以用简单的语言为我解释 Apache Kafka 吗?我希望用一个实际的例子而不是抽象的理论定义来解释,然后我可以更好地理解。

这有什么用途?消息传递是什么意思?什么之间的消息?!它在大数据分析的哪个阶段使用?

学习它的先决条件是什么?

PS:请像为非技术人员解释一样解释

2个回答

任何人都可以用简单的语言为我解释 Apache Kafka 吗?

正如 Kafka 的官方文档所说:

Apache Kafka 将发布-订阅消息重新考虑为分布式提交日志。它遵循发布-订阅消息传递方式,内置速度和持久性。

现在,让我给出一个愚蠢的解释:

发布-订阅(通常称为发布-订阅)架构基本上包含发布者(发送消息,例如:推特流)和订阅者(​​接收消息例如:分析师/用户的活动流)

更清晰的解释是:

在软件体系结构中,发布-订阅是一种消息传递模式,其中消息的发送者(称为发布者)不对将消息直接发送到特定的接收者(称为订阅者)进行编程,而是将发布的消息表征为类,而不知道哪些订阅者(如果有) , 可能有。类似地,订阅者表示对一个或多个类感兴趣,并且只接收感兴趣的消息,而不知道存在哪些发布者(如果有的话)。

请记住,Kafka 是一个分布式发布-订阅消息系统,旨在扩展。

在此处输入图像描述

现在,

它在大数据分析的哪个阶段使用?

它基本上用于 ETL 管道的提取步骤。它可以包含大量和高速的数据流(我们在技术上称之为高吞吐量)。

它也可以存储消息,但它是一个持久存储;这意味着数据不会永远存储。存储的数据具有到期日期。

学习它的先决条件是什么?

这是一个棘手的问题,因为每个可以编程的人都可以开始使用它,但是如果你真的想在你的架构中实现它,那么这些是我能想到的先决条件:

  • 了解什么是持久数据存储以及在何处使用它们
  • 知道什么是发布-订阅消息系统
  • 了解 ETL 中的提取步骤是什么。并且还知道如何处理高速向您涌来的海量数据。

进一步阅读:

Kafka 有一个很好的文档,可以帮助您开始使用它。

您可能更容易了解 Amazon Web Services (AWS) 中提供的事件流服务,主要是 Kinesis。

Kinesis Firehose ( http://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html ) 中最简单的一个,它为您提供了一个端点,您可以将事件写入其中,它们将出现在 Amazon Redshift 中,这是一种可以扩展到巨大规模的数据仓库服务 ( https://aws.amazon.com/redshift/ )。

AWS 还宣布他们将添加 Kinesis Analytics,这将允许您在 Kinesis 的事件流之上编写 SQL 代码。您可以计算不同的统计数据,例如移动年龄和传入事件的其他相关统计数据。

这些近乎实时处理的事件可以是您的网站上的点击、在您的电子商务网站中的购买、应监控潜在入侵的安全事件等。