Apache Kafka 是一个开源分布式流式传输平台,允许开发人员构建实时事件驱动的应用程序。借助 Apache Kafka,开发人员可以构建持续使用流式传输数据记录并为用户提供实时体验的应用程序。
无论是查看账户余额、观看 Netflix 还是浏览 LinkedIn,当今的用户都希望应用程序提供近乎实时的体验。Apache Kafka 的事件驱动架构旨在实时存储数据和广播事件,使其成为消息代理和存储单元,可在多种不同类型的应用程序中实现实时用户体验。
Apache Kafka 是最流行的开源数据处理系统之一,有近 50,000 家公司使用它,市场份额为 26.7%。
Apache Kafka 如何工作?
Kafka 是一个分布式系统,这意味着它是不同软件程序的集合,这些程序在多个节点(计算机)之间共享计算资源以实现单一目标。这种架构使 Kafka 比其他系统更具有容错性,因为它可以应对系统中单个节点或机器的丢失,并且仍能正常运行。
在分布式系统中,Apache 是构建微服务架构的最佳工具之一,这是一种云原生方法,其中单个应用程序由许多较小的连接组件或服务组成。除了云原生环境之外,开发人员还在 Kubernetes(一个开源容器编排平台)上使用 Apache Kafka,使用无服务器框架开发应用程序。
对于开发人员来说,Apache 的一大吸引力在于其独特的架构。Apache 使用发布-订阅消息系统,该系统具有所谓的异步通信功能,使开发人员可以更轻松地构建高级、架构复杂的应用程序。Apache 的架构由三个类别组成:事件、生产者和消费者,并且它在很大程度上依赖于应用程序编程接口 (API) 来运行。
重要的 Kafka 概念
Apache Kafka 以四个基本概念为基础:事件、流、生产者和消费者。下面简要介绍一下这些模型如何协同工作以赋予 Apache Kafka 核心功能。
活动和直播
当用户与网站互动(例如注册服务或下订单)时,这被称为“事件”。在 Apache 架构中,事件是包含描述用户所做操作的信息的任何消息。例如,如果用户在网站上注册,事件记录将包含他们的姓名和电子邮件地址。
Apache Kafka 与其他数据存储架构最大的区别可能就是其流式传输事件的能力——这种能力被称为“事件流”或简称为“流式传输”(在 Apache Kafka 中,具体称为 Kafka 流)。事件流是指由数百甚至数千个生产者生成的数据通过平台同时发送给消费者。
生产者和消费者
在 Apache Kafka 架构中,“生产者”是指任何可以创建数据的东西,例如 Web 服务器、应用程序或应用程序组件、物联网 (IoT)、设备等等。“消费者”是指任何需要生产者创建的数据才能运行的组件。例如,在物联网应用中,数据可能是来自连接到互联网的传感器的信息,例如温度计或无人驾驶汽车中用于检测交通信号灯是否发生变化的传感器。
Kafka 的架构设计使得它能够处理生产者生成的持续不断的事件数据,保存每个事件的准确记录,并不断将这些记录流发布给消费者。
Apache Kafka 用例
Apache Kafka 的实时数据处理核心功能为众多行业的应用程序打开了大门。借助 Kafka,企业正在探索利用流数据增加收入、推动数字化转型并为客户创造愉悦体验的新方法。以下是一些最引人注目的例子。
物联网 (IoT)
物联网 (IoT) 是一种嵌入传感器的设备网络,允许它们通过互联网收集和共享数据,它在很大程度上依赖于 Apache Kafka 架构。例如,连接到风车的传感器使用物联网功能通过互联网传输风速、温度和湿度等数据。在这种架构中,每个传感器都是一个生产者,每秒生成数据并将其发送到后端服务器或数据库(消费者)进行处理。
Kafka 架构促进了数据的实时传输和接收以及处理,使科学家和工程师能够从数百或数千英里外跟踪天气状况。Apache 的记录保存和消息队列功能可确保所收集数据的质量和准确性。
金融服务
Apache 可以通过物联网设备收集数据并实时传输给消费者,同样,它也可以收集和分析股票市场的信息。
Apache 已用于处理许多对股票交易和金融市场监控至关重要的业务关键型高容量工作负载。一些全球最大的银行和金融机构(如 PayPal、Ing 和摩根大通)将其用于实时数据分析、金融欺诈检测、银行业务风险管理、法规遵从、市场分析等。
零售
在线零售商和电子商务网站每天必须处理来自其应用程序或网站的数千个订单,而 Kafka 在实现这一目标的过程中扮演着重要角色。响应时间和客户关系管理 (CRM) 是零售业成功的关键,因此快速准确地处理订单非常重要。
Kafka 有助于简化客户与企业之间的沟通,利用其数据管道准确记录事件并保留订单和取消订单的记录,从而实时向所有相关方发出警报。除了处理订单外,Kafka 还会生成准确的数据,这些数据可供分析以评估业务绩效并发现有价值的见解。
卫生保健
医疗保健行业依靠 Kafka 将医院与关键的电子健康记录 (EHR) 和机密的患者信息连接起来。Kafka 促进双向通信,为依赖多个不同来源实时生成的数据的医疗保健应用程序提供支持。Kafka 的功能还允许实时共享知识;例如,患者对某种药物的过敏情况可以挽救生命。
除了帮助医生获得实时数据以指导他们如何治疗患者之外,Kafka 对医学研究界也至关重要。它的数据存储和分析功能可帮助研究人员搜索医疗数据以深入了解疾病和患者护理,从而加速医学突破。
电信
电信公司使用 Apache 提供各种服务。它的主要用途是实时数据流处理,用于监控为全球数百万无线设备供电的网络。Apache 收集网络运行数据,并实时传输到服务器,服务器不断分析这些数据以发现问题。Apache 为电信公司保存的记录包括通话、短信、客户数据、使用情况、掉线等。
赌博
当今最先进的游戏平台依赖于相距数百甚至数千英里的玩家之间的实时通信。如果在游戏中出现任何延迟,性能就会受到影响,因为玩家的反应时间是游戏成功的关键。此外,游戏行业近年来蓬勃发展,复合年增长率 (CAGR) 达到 13.4%,对其关键运营指标的审查也越来越严格。
Apache 为玩家之间的闪电般快速的通信和互动提供支持,这使得流行的超现实游戏生态系统如此受欢迎。新游戏依赖于 Apache 的实时流媒体功能以及实时分析和数据存储功能。此外,Apache 的流媒体管道可确保玩家的动作立即传输给其他玩家,从而帮助玩家实时跟踪彼此。
Apache Kafka 的优势
世界上一些最大、最现代化企业的开发人员和工程师使用 Apache 构建许多实时业务应用程序。Apache Kafka 为金融行业、在线购物巨头、音乐和视频流媒体平台、视频游戏创新者等提供服务。与其他平台相比,使用 Kafka 进行开发具有许多优势,以下是其最受欢迎的一些优势。
速度
Kafka 的数据处理系统以独特的方式使用 API,帮助它优化与许多其他数据库存储设计的数据集成,例如用于大数据分析的流行 SQL 和 NoSQL 架构。
可扩展性
Kafka 的构建是为了解决世界上一些最繁忙的网站上的批处理队列处理中的高延迟问题。它具有所谓的弹性、多集群可扩展性,允许跨多个 Kafka 集群(而不仅仅是一个)配置工作流,从而实现更高的可扩展性、高吞吐量和低延迟。
连接
Apache Connect 是一款数据流工具,它带有 120 个预构建连接器,使 Apache 能够与所有最流行的后端数据存储解决方案集成,包括 AWS 的 Amazon S3、MongoDB、Google BigQuery、ElasticSearch、Azure、DataDog 等。使用 Apache 的开发人员可以加快应用程序开发速度,并支持其组织的任何要求。
存储和追踪
由于世界上一些最大、要求最高的网站都使用 Apache,因此它需要能够快速准确地记录用户活动以避免中断。Apache 实时记录频繁发生的事件,如用户注册、页面浏览量、购买和其他与网站活动跟踪相关的信息。然后,它按主题对数据进行分组,并将其存储在分布式网络上,以便快速、轻松地访问。
消息传递
Apache 接收消息并将其保存在队列中——队列是用于存储和传输消息的容器。容器将消息连接到消费者应用程序和用户。Apache 的设计方式与其他流行的消息代理(如 RabbitMQ)类似;但与 Rabbit 和其他代理不同的是,它使用消息密钥将其消息划分为 Kafka 主题,该密钥可用于按相关性过滤消息。
数据处理
Apache 最吸引人的特性之一是它能够实时捕获和存储事件数据。其他流行的实时数据管道必须在所谓的预定批次中运行——一批只能在预定时间处理的数据。Apache 的设计允许实时处理数据,从而使物联网、分析等依赖实时数据处理的技术能够发挥作用。
了解更多
Apache Kafka 旨在实时存储数据和广播事件,从而为各种应用程序提供动态用户体验。IBM Event Streams 可帮助企业通过开源平台优化 Kafka,该平台既可以作为 IBM Cloud 上的完全托管服务部署,也可以作为 Event Automation 的一部分在本地部署。
探索 IBM Event Streams
这篇文章有帮助吗?
是的不