Apache Kafka 入门:入门指南
一、介绍
在本文中,我将详细介绍 Kafka,以及开发人员使用 Apache Kafka 作为流媒体平台意味着什么。在深入了解 Kafka 之前,我想先回顾一下,重点介绍一下软件开发的现状。
过去,所有构建的应用程序都是巨大的整体。这意味着所有功能都位于一个应用程序中。
这里的示例是一个零售应用程序,其中一些相关服务是订单服务、支付服务、库存服务和通知服务。所有这些服务将驻留在一个应用程序中并共享同一个数据库。这种架构已被证明在高负载下会失败。事情已经发生了变化,当前的开发状态使用更现代的架构,即微服务架构。
如上图所示,应用程序本身被分解为微服务,每个微服务都有自己的数据库。然而,作为一个整体,为了提供业务功能或价值,多个微服务使用一些通信协议相互交互。
如今构建的应用程序有一个新的要求,即提供实时通知并处理发生的事件(例如:在 Swiggy 或 Zomato 平台上实时跟踪送餐人员)。为了支持这一点,我们需要一个中间件。
完整的架构将如下所示。这是一个微服务架构。我们在这里使用的中间件是一个事件流平台。基本上,在其核心,每个微服务都会有一个 API,它将生成大量事件和其他服务。简而言之,每个微服务都会有一个 API,并且会有一个事件生产者甚至消费者。所有其他服务都通过事件流平台相互通信。这从根本上构成了事件驱动微服务的基础。
二、什么是事件流媒体平台?
事件流平台允许应用程序生成和使用记录流,就像在消息传递系统中一样。它类似于发布子模型。
这里的生产者和消费者是相互独立的,也就是说生产者不知道哪个消费者会阅读这条消息。
- 流媒体平台还存储事件流,以便在必要时重播。
- 事件通常保留在多个服务器中以提供容错和可用性。
- 流媒体平台还允许应用程序在记录发生时对其进行处理。
基本上,这三个原则构成了事件流平台的基础,Apache Kafka 就是建立在这些原则之上的。所以在这里,我们现有的事件流平台可以用 Apache Kafka 代替。
Kafka 是企业消息系统吗?
让我快速告诉你传统消息系统和 Kafka 之间的区别。
- 传统消息系统具有瞬时消息持久性,这意味着一旦消费者读取了记录,消息就会从消息代理中删除。对于 Kafka,它将把事件保存在安装 Kafka 的文件系统中,并将事件保留一段时间。Kafka 中的所有事件都是不可变的,这意味着一旦记录发送到 Kafka,就无法更改。
- 在传统的消息系统中,broker 负责跟踪消费者消费的消息,并在读取消息后将其从 broker 中删除。但在 Kafka 中,跟踪已消费的消息是消费者的责任。
- 在传统的消息系统中,我们可以指定特定的消费者从代理读取消息。但 Kafka 却不是这样。任何有权访问代理的消费者都可以读取消息。
- 传统消息系统不遵循分布式系统的原则。然而,Kafka 是建立在分布式系统的核心原则之上的。
注意:一般来说,分布式系统被证明能够很好地处理负载,并且具有分配负载的智能。
三、Apache Kafka 的用例
- 交通运输领域: Kafka 可用于交通运输领域的许多不同用例。
- 如今,通过应用程序在线预订车辆已经非常普遍。
- Kafka 可用于向乘客发送司机实时跟踪通知。
- 如今,网上订餐也是一个相当常见的场景,Kafka 可以用来对送餐司机进行实时追踪。
- 零售领域
- 在零售业中,Kafka 可用于提供实时销售通知。
- 根据之前的购买记录提供实时购买建议并实时跟踪在线订单。
- 银行领域
- 在银行业,Kafka 可用于对实时欺诈交易发出警报。
- 提供新功能、产品通知等。
四、结论
文章到此结束,我们学习了一些概念,如下所述。
- 什么是 Apache Kafka?
- Kafka 是如何在事件流平台上构建的。
- 它与企业消息系统有何不同?
- Kafka 在不同领域的使用案例。
对所用照片的免责声明:以上文章中使用的所有照片均来自 Udemy 或 Google。版权归各自所有者所有。