fbpx
维基百科

Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,[4]这使它作为企业级基础设施来处理流式数据非常有价值。此外,Kafka可以通过Kafka Connect连接到外部系统(用于数据输入/输出),并提供了Kafka Streams——一个Java流式处理

Kafka[1]
開發者Apache软件基金会,領英
首次发布2011年1月,​12年前​(2011-01[2]
当前版本
  • 3.5.1 (2023年7月20日)[3]
源代码库
  • github.com/apache/kafka
编程语言ScalaJava
操作系统跨平台
类型流式处理, 消息中间件英语message broker
许可协议Apache许可证 2.0
网站kafka.apache.org

该设计受事务日志英语Transaction log的影响较大。[5]

Kafka的历史 编辑

Kafka最初是由领英开发,并随后于2011年初开源,并于2012年10月23日由Apache Incubator孵化出站。2014年11月,几个曾在领英为Kafka工作的工程师,创建了名为Confluent的新公司,[6],并着眼于Kafka。根据2014年Quora的帖子,Jay Kreps似乎已经将它以作家弗朗茨·卡夫卡命名。Kreps选择将该系统以一个作家命名是因为,它是“一个用于优化写作的系统”,而且他很喜欢卡夫卡的作品。[7]

Kafka的架构 编辑

 
Kafka概览

Kafka存储的消息来自任意多被称为“生产者”(Producer)的进程。数据从而可以被分配到不同的“分区”(Partition)、不同的“Topic”下。在一个分区内,这些消息被索引并连同时间戳存储在一起。其它被称为“消费者”(Consumer)的进程可以从分区查询消息。Kafka运行在一个由一台或多台服务器组成的集群上,并且分区可以跨集群结点分布。

Kafka高效地处理实时流式数据,可以实现与Storm、HBase和Spark的集成。作为群集部署到多台服务器上,Kafka处理它所有的发布和订阅消息系统使用了四个API,即生产者API、消费者API、Stream API和Connector API。它能够传递大规模流式消息,自带容错功能,已经取代了一些传统消息系统,如JMS、AMQP等。

Kafka架构的主要术语包括Topic、Record和Broker。Topic由Record组成,Record持有不同的信息,而Broker则负责复制消息。Kafka有四个主要API:

  • 生产者API:支持应用程序发布Record流。
  • 消费者API:支持应用程序订阅Topic和处理Record流。
  • Stream API:将输入流转换为输出流,并产生结果。
  • Connector API:执行可重用的生产者和消费者API,可将Topic链接到现有应用程序。

相关术语 编辑

  • Topic 用来对消息进行分类,每个进入到Kafka的信息都会被放到一个Topic下
  • Broker 用来实现数据存储的主机服务器
  • Partition 每个Topic中的消息会被分为若干个Partition,以提高消息的处理效率
  • Producer 消息的生产者
  • Consumer 消息的消费者
  • Consumer Group 消息的消费群组

设计目标 编辑

Kafka的性能 编辑

由于其广泛集成到企业级基础设施中,监测Kafka在规模运行中的性能成为一个日益重要的问题。监测端到端性能,要求跟踪所有指标,包括Broker、消费者和生产者。除此之外还要监测ZooKeeper,Kafka用它来协调各个消费者。[8][9]目前有一些监测平台可以追蹤Kafka的性能,有开源的,如领英的Burrow;也有付费的,如Datadog。除了这些平台之外,收集Kafka的数据也可以使用工具来进行,这些工具一般需要Java,包括JConsole。[10]

Consumer Group 编辑

Kafka文件格式 编辑

00000000000000000000.index 00000000000000000000.log 00000000000000000000.timeindex 00000000000000782248.snapshot leader-epoch-checkpoint

使用Kafka的企业 编辑

下面的列表是曾经或正在使用Kafka的知名企业:

参见 编辑

  • Apache ActiveMQ
  • Apache Flink
  • Qpid英语Apache Qpid
  • Samza英语Apache Samza
  • Apache Spark
  • 数据发布服务英语Data Distribution Service
  • 企业集成模式英语Enterprise Integration Patterns
  • 企业消息系统英语Enterprise Messaging System
  • 事件流式处理英语Event stream processing
  • 事件驱动SOA英语Event-driven SOA
  • 面向消息的中间件英语Message-oriented middleware
  • 面向服务的架构
  • StormMQ英语StormMQ

参考资料 编辑

  1. ^ GitHub仓库镜像. [2014-04-09]. (原始内容于2020-08-16). 
  2. ^ Open-sourcing Kafka, LinkedIn's distributed message queue [开源的Kafka,LinkedIn的分布式消息队列]. [2016-10-27]. (原始内容于2021-01-11). 
  3. ^ Release 3.5.1. 2023年7月20日 [2023年7月27日]. 
  4. ^ Monitoring Kafka performance metrics [监控Kafka性能数据]. Datadog官方博客. [2016-05-23]. (原始内容于2020-11-08) (英语). 
  5. ^ . 领英官方博客. [2014-05-05]. (原始内容存档于2014-03-17) (英语). 
  6. ^ Primack, Dan. LinkedIn engineers spin out to launch 'Kafka' startup Confluent [领英工程师推迟发布Kafka启动Confluent]. [2015-02-10]. (原始内容于2020-10-22) (英语). 
  7. ^ What is the relation between Kafka, the writer, and Apache Kafka, the distributed messaging system? [作家卡夫卡和Apache Kafka那个分布式消息系统之间有什么关系?]. [2017-06-12] (英语). 
  8. ^ Monitoring Kafka performance metrics [监测Kafka性能指标]. 2016-04-06 [2016-10-05]. (原始内容于2020-11-08) (英语). 
  9. ^ Mouzakitis, Evan. Monitoring Kafka performance metrics [监测Kafka性能指标]. 2016-04-06 [2016-10-05]. (原始内容于2020-11-08) (英语). 
  10. ^ Collecting Kafka performance metrics - Datadog [收集Kafka性能指标-Datadog]. 2016-04-06 [2016-10-05]. (原始内容于2020-11-27) (英语). 
  11. ^ . [2017-12-22]. (原始内容存档于2018-10-21) (英语). 
  12. ^ Kafka Usage in Ebay Communications Delivery Pipeline [Kafka在Ebay通信传递管道中的用途]. [2017-12-22]. (原始内容于2019-02-16) (英语). 
  13. ^ Doyung Yoon. . [2017-12-22]. (原始内容存档于2016-03-09) (英语). 
  14. ^ Cheolsoo Park and Ashwin Shankar. . [2017-12-22]. (原始内容存档于2016-03-04) (英语). 
  15. ^ Shibi Sudhakaran of PayPal. PayPal: Creating a Central Data Backbone: Couchbase Server to Kafka to Hadoop and Back (talk at Couchbase Connect 2015) [PayPal:创建中心数据骨干:Couchbase Server到Kafka到Hadoop和Back(在Couchbase Connect 2015上的讲话)]. Couchbase. [2016-02-03]. (原始内容于2016-09-17) (英语). 
  16. ^ Josh Baer. . [2017-12-22]. (原始内容存档于2016-03-09) (英语). 
  17. ^ . Yelp. [2017-07-19]. (原始内容存档于2017-06-03) (英语). 
  18. ^ Boerge Svingen. . [2017-09-19]. (原始内容存档于2017-09-17) (英语). 
  19. ^ . 思科博客. [2016-02-03]. (原始内容存档于2016-03-09) (英语). 
  20. ^ Apache Kafka for Item Setup [Kafka用于项目设置]. medium.com. [2017-06-12]. (原始内容于2019-05-03) (英语). 
  21. ^ Stream Processing in Uber [优步的流式处理]. InfoQ. [2015-12-06]. (原始内容于2015-12-05) (英语). 

外部链接 编辑

  • Apache Kafka网站(页面存档备份,存于互联网档案馆(英文)
  • 项目设计讨论(页面存档备份,存于互联网档案馆(英文)
  • Github镜像 (页面存档备份,存于互联网档案馆
  • Morten Kjetland对Apache Kafka的介绍(页面存档备份,存于互联网档案馆(英文)
  • Quora上与RabbitMQ的对比(英文)
  • Kafka开发者邮件列表中与RabbitMQ的对比(页面存档备份,存于互联网档案馆(英文)
  • Stackoverflow上与RabbitMQ和ZeroMQ的对比(页面存档备份,存于互联网档案馆(英文)
  • Apache Kafka中的集群内部响应(页面存档备份,存于互联网档案馆(英文)
  • (英文)

kafka, 此條目的引用需要进行清理, 使其符合格式, 2020年11月2日, 参考文献应符合正确的引用, 脚注及外部链接格式, 是由apache软件基金会开发的一个开源流处理平台, 由scala和java编写, 该项目的目标是为处理实时数据提供一个统一, 高吞吐, 低延迟的平台, 其持久化层本质上是一个, 按照分布式事务日志架构的大规模发布, 订阅消息队列, 这使它作为企业级基础设施来处理流式数据非常有价值, 此外, 可以通过, connect连接到外部系统, 用于数据输入, 输出, 并提供了, streams. 此條目的引用需要进行清理 使其符合格式 2020年11月2日 参考文献应符合正确的引用 脚注及外部链接格式 Kafka是由Apache软件基金会开发的一个开源流处理平台 由Scala和Java编写 该项目的目标是为处理实时数据提供一个统一 高吞吐 低延迟的平台 其持久化层本质上是一个 按照分布式事务日志架构的大规模发布 订阅消息队列 4 这使它作为企业级基础设施来处理流式数据非常有价值 此外 Kafka可以通过Kafka Connect连接到外部系统 用于数据输入 输出 并提供了Kafka Streams 一个Java流式处理库 Kafka 1 開發者Apache软件基金会 領英首次发布2011年1月 12年前 2011 01 2 当前版本3 5 1 2023年7月20日 3 源代码库github wbr com wbr apache wbr kafka编程语言Scala Java操作系统跨平台类型流式处理 消息中间件 英语 message broker 许可协议Apache许可证 2 0网站kafka wbr apache wbr org该设计受事务日志 英语 Transaction log 的影响较大 5 目录 1 Kafka的历史 2 Kafka的架构 3 相关术语 4 设计目标 5 Kafka的性能 6 Consumer Group 7 Kafka文件格式 8 使用Kafka的企业 9 参见 10 参考资料 11 外部链接Kafka的历史 编辑Kafka最初是由领英开发 并随后于2011年初开源 并于2012年10月23日由Apache Incubator孵化出站 2014年11月 几个曾在领英为Kafka工作的工程师 创建了名为Confluent的新公司 6 并着眼于Kafka 根据2014年Quora的帖子 Jay Kreps似乎已经将它以作家弗朗茨 卡夫卡命名 Kreps选择将该系统以一个作家命名是因为 它是 一个用于优化写作的系统 而且他很喜欢卡夫卡的作品 7 Kafka的架构 编辑 nbsp Kafka概览Kafka存储的消息来自任意多被称为 生产者 Producer 的进程 数据从而可以被分配到不同的 分区 Partition 不同的 Topic 下 在一个分区内 这些消息被索引并连同时间戳存储在一起 其它被称为 消费者 Consumer 的进程可以从分区查询消息 Kafka运行在一个由一台或多台服务器组成的集群上 并且分区可以跨集群结点分布 Kafka高效地处理实时流式数据 可以实现与Storm HBase和Spark的集成 作为群集部署到多台服务器上 Kafka处理它所有的发布和订阅消息系统使用了四个API 即生产者API 消费者API Stream API和Connector API 它能够传递大规模流式消息 自带容错功能 已经取代了一些传统消息系统 如JMS AMQP等 Kafka架构的主要术语包括Topic Record和Broker Topic由Record组成 Record持有不同的信息 而Broker则负责复制消息 Kafka有四个主要API 生产者API 支持应用程序发布Record流 消费者API 支持应用程序订阅Topic和处理Record流 Stream API 将输入流转换为输出流 并产生结果 Connector API 执行可重用的生产者和消费者API 可将Topic链接到现有应用程序 相关术语 编辑Topic 用来对消息进行分类 每个进入到Kafka的信息都会被放到一个Topic下 Broker 用来实现数据存储的主机服务器 Partition 每个Topic中的消息会被分为若干个Partition 以提高消息的处理效率 Producer 消息的生产者 Consumer 消息的消费者 Consumer Group 消息的消费群组设计目标 编辑Kafka的性能 编辑由于其广泛集成到企业级基础设施中 监测Kafka在规模运行中的性能成为一个日益重要的问题 监测端到端性能 要求跟踪所有指标 包括Broker 消费者和生产者 除此之外还要监测ZooKeeper Kafka用它来协调各个消费者 8 9 目前有一些监测平台可以追蹤Kafka的性能 有开源的 如领英的Burrow 也有付费的 如Datadog 除了这些平台之外 收集Kafka的数据也可以使用工具来进行 这些工具一般需要Java 包括JConsole 10 Consumer Group 编辑Kafka文件格式 编辑00000000000000000000 index 00000000000000000000 log 00000000000000000000 timeindex 00000000000000782248 snapshot leader epoch checkpoint使用Kafka的企业 编辑下面的列表是曾经或正在使用Kafka的知名企业 小米 CloudFlare 11 EBay 12 Kakao 13 Netflix 14 PayPal 15 Spotify 16 Yelp 17 纽约时报 18 思科系统 19 沃尔玛 20 优步 21 参见 编辑Apache ActiveMQ Apache Flink Qpid 英语 Apache Qpid Samza 英语 Apache Samza Apache Spark 数据发布服务 英语 Data Distribution Service 企业集成模式 英语 Enterprise Integration Patterns 企业消息系统 英语 Enterprise Messaging System 事件流式处理 英语 Event stream processing 事件驱动SOA 英语 Event driven SOA 面向消息的中间件 英语 Message oriented middleware 面向服务的架构 StormMQ 英语 StormMQ 参考资料 编辑 GitHub仓库镜像 2014 04 09 原始内容存档于2020 08 16 Open sourcing Kafka LinkedIn s distributed message queue 开源的Kafka LinkedIn的分布式消息队列 2016 10 27 原始内容存档于2021 01 11 Release 3 5 1 2023年7月20日 2023年7月27日 Monitoring Kafka performance metrics 监控Kafka性能数据 Datadog官方博客 2016 05 23 原始内容存档于2020 11 08 英语 The Log What every software engineer should know about real time data s unifying abstraction The Log What every software engineer should know about real time data s unifying abstraction 领英官方博客 2014 05 05 原始内容存档于2014 03 17 英语 Primack Dan LinkedIn engineers spin out to launch Kafka startup Confluent 领英工程师推迟发布Kafka启动Confluent 2015 02 10 原始内容存档于2020 10 22 英语 What is the relation between Kafka the writer and Apache Kafka the distributed messaging system 作家卡夫卡和Apache Kafka那个分布式消息系统之间有什么关系 2017 06 12 英语 Monitoring Kafka performance metrics 监测Kafka性能指标 2016 04 06 2016 10 05 原始内容存档于2020 11 08 英语 Mouzakitis Evan Monitoring Kafka performance metrics 监测Kafka性能指标 2016 04 06 2016 10 05 原始内容存档于2020 11 08 英语 Collecting Kafka performance metrics Datadog 收集Kafka性能指标 Datadog 2016 04 06 2016 10 05 原始内容存档于2020 11 27 英语 More data more data 更多数据 更多数据 2017 12 22 原始内容存档于2018 10 21 英语 Kafka Usage in Ebay Communications Delivery Pipeline Kafka在Ebay通信传递管道中的用途 2017 12 22 原始内容存档于2019 02 16 英语 Doyung Yoon S2Graph A Large Scale Graph Database with HBase S2Graph 基于HBase的大规模图形数据库 2017 12 22 原始内容存档于2016 03 09 英语 Cheolsoo Park and Ashwin Shankar Netflix Integrating Spark at Petabyte Scale Netflix 在Pb级规模集成Spark 2017 12 22 原始内容存档于2016 03 04 英语 Shibi Sudhakaran of PayPal PayPal Creating a Central Data Backbone Couchbase Server to Kafka to Hadoop and Back talk at Couchbase Connect 2015 PayPal 创建中心数据骨干 Couchbase Server到Kafka到Hadoop和Back 在Couchbase Connect 2015上的讲话 Couchbase 2016 02 03 原始内容存档于2016 09 17 英语 Josh Baer How Apache Drives Spotify s Music Recommendations Apache如何驱动Spotify的音乐推荐 2017 12 22 原始内容存档于2016 03 09 英语 Streaming Messages from Kafka into Redshift in near Real Time 从Kafka到Redshift的流式消息接近于实时 Yelp 2017 07 19 原始内容存档于2017 06 03 英语 Boerge Svingen Publishing with Apache Kafka at The New York Times 在纽约时报使用Kafka进行出版 2017 09 19 原始内容存档于2017 09 17 英语 OpenSOC An Open Commitment to Security OpenSOC 一份公开的安全承诺 思科博客 2016 02 03 原始内容存档于2016 03 09 英语 Apache Kafka for Item Setup Kafka用于项目设置 medium com 2017 06 12 原始内容存档于2019 05 03 英语 Stream Processing in Uber 优步的流式处理 InfoQ 2015 12 06 原始内容存档于2015 12 05 英语 外部链接 编辑Apache Kafka网站 页面存档备份 存于互联网档案馆 英文 项目设计讨论 页面存档备份 存于互联网档案馆 英文 Github镜像 页面存档备份 存于互联网档案馆 Morten Kjetland对Apache Kafka的介绍 页面存档备份 存于互联网档案馆 英文 Quora上与RabbitMQ的对比 英文 Kafka开发者邮件列表中与RabbitMQ的对比 页面存档备份 存于互联网档案馆 英文 Stackoverflow上与RabbitMQ和ZeroMQ的对比 页面存档备份 存于互联网档案馆 英文 Apache Kafka中的集群内部响应 页面存档备份 存于互联网档案馆 英文 Kafka用户邮件列表讨论 英文 取自 https zh wikipedia org w index php title Kafka amp oldid 77533554, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。