跳到正文

Apache Kafka

Apache Kafka 是一个开源分布式事件流平台,用于大规模发布、处理、存储和集成数据流。

最近更新 2026年10月7日

AI 爬虫读取

1次请求

1家公司
  • Anthropic1
词条页
1
争议页
0
JSON · MD
0
首次读取
2026年11月4日
最近读取
2026年11月4日

统计自 2026年10月28日 · 数据来自本站服务器日志

概览

Apache Kafka 是 Apache 软件基金会生态中的开源分布式事件流平台与软件项目。它面向需要可靠地移动和处理连续记录流的系统,通常涉及大量生产者、消费者、服务和数据存储。Kafka 常用于事件驱动架构、应用集成、运维监控、日志与活动采集、数据管道、流处理和实时分析。 该项目起源于 LinkedIn,当时工程师需要能够处理高吞吐活动数据、连接众多内部系统而不造成紧耦合点对点集成的基础设施。Kafka 的核心抽象是持久、有序且划分为分区的日志。生产者向主题写入记录,消费者独立读取这些记录,并可维护自己在流中的位置。这种设计将数据生产与消费分离,使多个应用能将同一事件历史用于不同目的。 Kafka 于 2011 年成为开源项目,随后贡献给 Apache 软件基金会,并于 2012 年成为 Apache 顶级项目。Apache 治理为项目提供了厂商中立的归属,并帮助扩大参与范围,超越其最初的公司环境。随着时间推移,Kafka 从消息传递和日志收集系统发展为更广泛的事件流平台,具备复制、容错、灵活客户端访问、流处理、连接器、管理、安全和运维工具等能力。 Kafka 核心服务器在集群中存储并复制分区事件日志。主题提供逻辑组织,分区提供可扩展性和顺序边界,消费者组允许多个应用实例分担工作。Kafka 的保留模型允许记录在初次消费后仍可获取,在保留策略和存储容量允许时支持重放和重建下游状态。这使 Kafka 区别于传统队列系统,后者的消息通常在确认后即被删除。 更广泛的 Kafka 生态包括官方客户端库、用于将 Kafka 与外部系统集成的 Kafka Connect、用于构建流处理应用的 Kafka Streams,以及面向生产部署的管理和安全功能。后续架构发展,包括向基于 KRaft 的元数据管理演进,旨在减少对历史上使用的独立 ZooKeeper 服务的依赖,从而简化集群运维。 Kafka 被技术、金融、零售、电信、交通、媒体、制造和公共服务等领域的组织使用。它不是传统商业公司或上市公司;该名称主要标识一个开源技术项目。商业发行版、托管服务、咨询服务和相关产品由第三方提供,包括 Confluent 等公司,但这些业务与 Apache Kafka 项目本身不同。由于提供的名称缺少可靠的 wiki 路径,本档案将其解释为 Apache Kafka,与所述信息技术和 DevOps 基础设施分类一致。

沿革

Apache Kafka 最初是 LinkedIn 的内部项目,旨在解决公司对统一、可扩展的活动数据和运营事件基础设施的需求。当时的现有方案难以在允许众多独立应用消费同一份信息的同时处理海量数据。Kafka 的设计将分布式提交日志的特性与发布-订阅接口相结合,使记录能够顺序写入、跨服务器复制、按可配置的时长保留,并被多个消费者应用读取。 该项目由 LinkedIn 工程师 Jay Kreps、Neha Narkhede 和 Jun Rao 等人创建。Kafka 于 2011 年开源,从而得以在 LinkedIn 之外被使用和贡献。2012 年,它作为顶级项目进入 Apache 软件基金会。Apache 社区提供了中立的治理和更广泛的贡献者基础,而该系统的高性能和相对简单的数据模型帮助它在大规模数据架构中获得采用。 早期的 Kafka 部署侧重于日志聚合、活动跟踪、消息传递以及系统间的数据移动。其分区主题模型使工作负载能够水平扩展,而复制则在单个 broker 故障时提供韧性。消费者组提供了一种在多个应用实例之间分配处理的方式,而无需每个消费者都读取所有分区。保留和重放也使 Kafka 成为持久的事件来源,而不仅仅是短暂的消息队列。 随着采用范围扩大,该项目超越了核心 broker 和客户端 API。Kafka Connect 引入了在 Kafka 与外部数据库、文件系统、云服务、搜索平台及其他应用之间移动数据的框架。Kafka Streams 提供了直接在 Kafka 上构建流处理应用的库,包括转换、连接、聚合和有状态处理。身份验证、授权和加密等安全能力对企业及受监管部署变得重要。 Kafka 的运营模式也在演变。多年来,集群通常依赖 Apache ZooKeeper 进行元数据和控制器协调。KRaft 计划推动 Kafka 在 Kafka 自身内部管理元数据,目标是降低架构复杂性并简化安装和管理。这一转变代表了该平台的一次重大代际变化,尽管对特定模式和功能的支持因 Kafka 版本而异。 Kafka 现已成为事件驱动和实时数据架构中的基础组件。它被用于连接微服务、分发业务事件、为分析系统提供数据、同步数据库、收集遥测数据,并支持流处理工作负载。该 Apache 项目仍与打包或托管 Kafka 的商业公司保持独立。由 Kafka 最初创建者创立的 Confluent 是一家围绕 Kafka 相关技术构建的知名商业公司,但它并非 Apache Kafka 项目的所有者。该项目本身继续在 Apache 治理下作为一个活跃的开源平台运行。

  • 2022

    基于 KRaft 的架构在生产环境中获得更广泛应用

    [5]

    Kafka 的 KRaft 工作推动项目走向内部元数据管理,并逐步摆脱其历史上对 ZooKeeper 的依赖。

  • 2016
    [4]
  • 2015
    [3]
  • 2012
    [1]
  • 2011
    [1]

产品与定位

一个开源、厂商中立的高吞吐量、容错事件流与数据集成平台。

  • 事件流平台 · 2011

    Apache Kafka

    Kafka 核心平台由 broker、主题、分区、副本、生产者与消费者 API 以及集群管理能力组成。它以分区日志的形式存储有序记录,并允许相互独立的应用发布和消费这些记录。其架构面向高吞吐、可水平扩展且具备容错能力的工作负载,例如事件分发、数据管道、服务集成和实时处理。

  • 数据集成 · 2014

    Kafka Connect

    Kafka Connect 是一个用于在 Kafka 与外部系统之间移动数据的框架。源连接器将记录导入 Kafka,接收端连接器则将记录导出到数据库、存储系统、搜索服务和分析平台等目标。该框架旨在减少对自定义集成代码的需求,并支持对连接器任务的运维管理。

  • 流处理 · 2015

    Kafka Streams

    Kafka Streams 是一个用于构建流处理应用的客户端库。它支持转换、过滤、聚合、连接、窗口以及有状态操作,并以 Kafka 主题作为输入和输出。应用可以作为普通进程部署,无需单独的流处理集群,但在生产设计中仍需关注分区、状态存储、恢复和运维容量。

  • 开发者工具 · 2011

    Kafka 客户端 API

    Kafka 为生产者和消费者提供 API 与协议支持,使应用能够向主题写入记录并独立读取这些记录。客户端访问既可通过官方 Java 生态实现,也可通过其他编程语言的受维护客户端和协议实现来完成。这些接口构成了应用开发接入 Kafka 集群的主要入口。

品牌决策

  • 2019

    推进 KRaft 元数据架构换代

    背景

    Kafka 历史上对 ZooKeeper 的依赖,为集群部署和运维增加了单独的系统。

    采取的行动

    项目开发了 KRaft,使 Kafka 能够通过自己的 controller quorum 管理集群元数据。

    后续影响

    KRaft 成为简化 Kafka 架构的方向,并在后续版本中逐步被采用。

  • 2016

    通过 Kafka Connect 扩展集成能力战略

    背景

    大规模 Kafka 部署需要可重复的方式,将 broker 与数据库、存储、应用程序及其他基础设施连接起来。

    采取的行动

    Kafka Connect 被开发为通用集成框架,支持 source 和 sink 连接器。

    后续影响

    Kafka 作为企业数据架构中的中央集成层变得更加实用。

  • 2015

    在项目生态中加入 Kafka Streams新品

    背景

    用户越来越需要在 Kafka 平台附近处理事件,而不是为每种工作负载都把记录迁移到单独的处理系统。

    采取的行动

    Kafka Streams 作为用于开发 Kafka 流处理应用的库被引入。

    后续影响

    项目从事件传输和持久化日志扩展到更广泛的事件流处理平台。

  • 2012

    将项目纳入 Apache 治理战略

    背景

    Kafka 在 LinkedIn 内部开发,但随着采用范围扩大,需要更广泛的社区和一家中立的机构作为归属。

    采取的行动

    项目进入 Apache 软件基金会,并成为 Apache 顶级项目。

    后续影响

    Apache 治理帮助 Kafka 确立为厂商中立的开源项目,参与方不再局限于最初的雇主。

来源5 个来源

引用本词条: 请引用规范词条页。 /brand-wiki/kafka · 编辑方针 · 词条如何编纂