Apache Kafka 是一款开源分布式流处理平台,允许开发者构建实时事件驱动型应用程序。借助 Apache Kafka,开发人员能够构建持续消费流数据记录的应用程序,为用户提供实时体验。
无论是查询账户余额、流媒体观看 Netflix 还是浏览 LinkedIn,当今用户对应用程序的实时体验抱有极高期待。Apache Kafka 的事件驱动架构专为实时存储数据与广播事件而设计,使其同时成为消息代理和存储单元,为多种不同类型的应用程序提供实时用户体验支持。
Apache Kafka 是目前最流行的开源数据处理系统之一,被近 5 万家企业采用,市场份额达 26.7%。
Kafka 是一种分布式系统,即由多个节点(计算机)上的不同软件程序集合而成,通过共享计算资源实现共同目标。这种架构使 Kafka 具备比其他系统更强的容错性——即使系统中某个节点或机器发生故障,仍能维持正常运行。
在分布式系统中,Apache Kafka 凭借其卓越的微服务架构构建能力脱颖而出。微服务是一种 云原生方法,将单个应用程序拆分为多个小型互联组件或服务。除了云原生环境,开发者还在 Kubernetes(开源 容器编排 平台)上使用 Apache Kafka,通过无服务器框架开发应用程序。
对开发人员而言,Apache Kafka 最大的吸引力在于其独特架构。Apache 采用发布-订阅消息模式,这种系统具备异步通信特性,使开发者能更轻松地构建高级且架构复杂的应用程序。Apache 架构由事件、生产者和消费者三大要素构成,其运行高度依赖应用程序编程接口 (API)。
Apache Kafka 基于四大基础概念运行:事件、流处理、生产者和消费者。以下简要说明这些模型如何协同运作,赋予 Apache Kafka 核心能力。
当用户与网站交互时(例如注册服务或提交订单),该行为被称为“事件”。在 Apache 架构中,事件指包含描述用户操作信息的任何消息。例如,若用户在某网站完成注册,相应的事件记录将包含其姓名与邮箱地址。
Apache Kafka 区别于其他数据存储架构的核心能力在于其事件流处理功能(称为“事件流”或简称“流处理”,特指 Apache Kafka 中的 Kafka 流)。事件流是指由数百甚至数千个生产者生成的数据通过平台同时传输给消费者的过程。
在 Apache Kafka 架构中,“生产者”指能生成数据的任何实体,例如 Web 服务器、应用程序或组件、 物联网 (IoT) 设备等。“消费者”则是需要利用生产者所创数据来运作的任何组件。例如,在 IoT 应用中,数据可能来自联网传感器(如温度计或无人驾驶车辆中探测交通信号灯变化的传感器)。
Kafka 的架构设计使其能持续处理生产者实时生成的事件数据流,准确记录每个事件,并持续向消费者发布这些事件记录流。
Apache Kafka 的实时数据处理核心能力为跨行业应用程序开启了无限可能。企业正借助 Kafka 探索利用流数据增加营收、驱动数字化转型并为客户创造愉悦体验的新途径。以下是几个典型应用场景。
物联网 (IoT) 作为嵌有传感器的设备网络,依赖传感器在互联网上收集和共享数据,其架构深度依赖 Apache Kafka。例如,连接风力发电机的传感器通过 IoT 功能传输风速、温度与湿度等数据。在此架构中,每个传感器都是生产者,每秒将生成的数据发送至作为消费者的后端服务器或数据库进行处理。
Kafka 架构实时促进这种双向数据收发与处理,使科学家和工程师能追踪数千英里外的气象状况。Apache 的记录保存与消息队列功能确保所采集数据的质量与精确度。
同样地,Apache 既能通过 IoT 设备采集并实时向消费者传输数据,也能实现对股市信息的采集与分析。
Apache 已被用于许多对股票交易和金融市场监测至关重要的高负载关键业务。PayPal、Ing 和 JP 等全球顶尖银行与金融机构正将其用于实时数据分析、金融欺诈检测、银行业务风险管理、合规监管及市场分析等领域。
线上零售商与 电子商务 网站每天需处理来自其应用或网站的数千笔订单,而 Kafka 在许多企业实现这一流程中发挥着核心作用。响应时间与 客户关系管理 (CRM) 是零售行业成功的关键,因此快速准确地处理订单至关重要。
Kafka 通过其数据管道精准记录事件、维护订单与取消记录,并实时提醒所有相关方,从而简化客户与企业间的通信流程。除订单处理外,Kafka 生成的精确数据可用于分析业务表现并挖掘有价值的洞察。
医疗健康行业依赖 Kafka 连接医院的关键电子健康记录 (EHR) 与机密患者信息。Kafka 支持双向通信,为依赖多源实时数据的医疗应用提供核心动力。Kafka 的功能还包括实时知识共享——例如能挽救生命的患者药物过敏信息传递。
除了帮助医生获取实时数据以指导诊疗方案外,Kafka 对医学研究界也至关重要。其数据存储与分析能力助力研究人员梳理医疗数据,获取疾病与患者护理方面的洞察,从而加速医学突破。
通信公司利用 Apache 实现多种服务。其核心应用在于通过实时数据流处理技术,监控支撑全球数百万无线设备的通信网络。Apache 持续采集网络运营数据,并实时传输至服务器进行问题分析。Apache 为通信企业维护的记录涵盖通话、短信、客户资料、使用量、掉线情况等多元维度。
当今最先进的游戏平台依赖于相距数百甚至数千英里玩家之间的实时交互。在胜负取决于玩家反应速度的游戏中,任何延迟都会严重影响体验。此外,游戏行业近年来呈现爆发式增长, 13.4% 的复合年增长率 (CAGR) 使其关键运营指标备受关注。
Apache 为玩家间闪电般的即时交互提供技术支撑,这正是广受欢迎的超现实游戏生态系统的核心优势。新兴游戏依托 Apache 的实时流处理能力,结合其实时分析与数据存储功能。更重要的是,通过确保玩家动作数据被即时传输给其他参与者,Apache 的流处理管道实现了玩家间的实时轨迹同步。
全球众多大型现代化企业的开发人员和工程师都采用 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)相似;但不同于 RabbitMQ 等其他代理,它会通过消息密钥将消息划分到 Kafka主题中,该密钥可用于根据相关性过滤消息。
Apache 最引人瞩目的特性之一是其实时捕获与存储事件数据的能力。其他主流实时 数据管道 必须按预定批次运行——即数据只能在预设时间点进行处理。而 Apache 的设计支持实时数据处理,这使得 IoT、分析技术等依赖实时数据处理的应用程序得以实现。
Apache Kafka 专为实时存储数据与广播事件而构建,能为各类应用程序提供动态用户体验。IBM Event Streams 通过开源平台帮助企业优化 Kafka,该平台既可部署为 IBM Cloud 上全托管服务,也可作为事件自动化解决方案在本地部署。
IBM® Event Streams 是基于开源 Apache Kafka 构建的事件流软件,采用两种形式:IBM® Cloud 上的完全托管服务或自托管。
借助 IBM 整合解决方案解锁业务潜力,连接不同的应用程序和系统以快速、安全地访问关键数据。
利用 IBM 的云咨询服务解锁新功能并促进业务敏捷性。