Apache Kafka 入门:入门指南

发布:2024-09-11 14:51 阅读:48 点赞:0

一、介绍

在本文中,我将详细介绍 Kafka,以及开发人员使用 Apache Kafka 作为流媒体平台意味着什么。在深入了解 Kafka 之前,我想先回顾一下,重点介绍一下软件开发的现状。

软件开发

过去,所有构建的应用程序都是巨大的整体。这意味着所有功能都位于一个应用程序中。

这里的示例是一个零售应用程序,其中一些相关服务是订单服务、支付服务、库存服务和通知服务。所有这些服务将驻留在一个应用程序中并共享同一个数据库。这种架构已被证明在高负载下会失败。事情已经发生了变化,当前的开发状态使用更现代的架构,即微服务架构。

发展

如上图所示,应用程序本身被分解为微服务,每个微服务都有自己的数据库。然而,作为一个整体,为了提供业务功能或价值,多个微服务使用一些通信协议相互交互。

如今构建的应用程序有一个新的要求,即提供实时通知并处理发生的事件(例如:在 Swiggy 或 Zomato 平台上实时跟踪送餐人员)。为了支持这一点,我们需要一个中间件。

米德尔韦尔

完整的架构将如下所示。这是一个微服务架构。我们在这里使用的中间件是一个事件流平台。基本上,在其核心,每个微服务都会有一个 API,它将生成大量事件和其他服务。简而言之,每个微服务都会有一个 API,并且会有一个事件生产者甚至消费者。所有其他服务都通过事件流平台相互通信。这从根本上构成了事件驱动微服务的基础。

二、什么是事件流媒体平台?

事件流平台允许应用程序生成和使用记录流,就像在消息传递系统中一样。它类似于发布子模型。

这里的生产者和消费者是相互独立的,也就是说生产者不知道哪个消费者会阅读这条消息。

流媒体平台

  1. 流媒体平台还存储事件流,以便在必要时重播。
  2. 事件通常保留在多个服务器中以提供容错和可用性。
  3. 流媒体平台还允许应用程序在记录发生时对其进行处理。

基本上,这三个原则构成了事件流平台的基础,Apache Kafka 就是建立在这些原则之上的。所以在这里,我们现有的事件流平台可以用 Apache Kafka 代替。

阿帕奇·卡夫卡

Kafka 是企业消息系统吗?

让我快速告诉你传统消息系统和 Kafka 之间的区别。

消息系统

  1. 传统消息系统具有瞬时消息持久性,这意味着一旦消费者读取了记录,消息就会从消息代理中删除。对于 Kafka,它将把事件保存在安装 Kafka 的文件系统中,并将事件保留一段时间。Kafka 中的所有事件都是不可变的,这意味着一旦记录发送到 Kafka,就无法更改。
  2. 在传统的消息系统中,broker 负责跟踪消费者消费的消息,并在读取消息后将其从 broker 中删除。但在 Kafka 中,跟踪已消费的消息是消费者的责任。
  3. 在传统的消息系统中,我们可以指定特定的消费者从代理读取消息。但 Kafka 却不是这样。任何有权访问代理的消费者都可以读取消息。
  4. 传统消息系统不遵循分布式系统的原则。然而,Kafka 是建立在分布式系统的核心原则之上的。

注意:一般来说,分布式系统被证明能够很好地处理负载,并且具有分配负载的智能。

三、Apache Kafka 的用例

卡夫卡

  1. 交通运输领域: Kafka 可用于交通运输领域的许多不同用例。
    1. 如今,通过应用程序在线预订车辆已经非常普遍。
    2. Kafka 可用于向乘客发送司机实时跟踪通知。
    3. 如今,网上订餐也是一个相当常见的场景,Kafka 可以用来对送餐司机进行实时追踪。
  2. 零售领域
    1. 在零售业中,Kafka 可用于提供实时销售通知。
    2. 根据之前的购买记录提供实时购买建议并实时跟踪在线订单。
  3. 银行领域
    1. 在银行业,Kafka 可用于对实时欺诈交易发出警报。
    2. 提供新功能、产品通知等。

四、结论

文章到此结束,我们学习了一些概念,如下所述。

  1. 什么是 Apache Kafka?
  2. Kafka 是如何在事件流平台上构建的。
  3. 它与企业消息系统有何不同?
  4. Kafka 在不同领域的使用案例。

对所用照片的免责声明:以上文章中使用的所有照片均来自 Udemy 或 Google。版权归各自所有者所有。