AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

Apache Kafka —一个不同的消息系统

  • 2014-01-04
  • 本文字数:1267 字

    阅读完需:约 4 分钟

Apache 已经发布了 Kafka 0.8,也是自从成为 Apache 软件基金会的顶级项目后 Kafka 的第一个主版本。 Apache Kafka 是发布—订阅消息传递,实现了分布式提交日志,适用于离线和在线消息消费。它最初由 LinkedIn 开发的消息系统,用于低延迟的收集和发送大量的事件和日志数据。最新版本包括群集内复制和多数据目录支持。目前请求处理也是异步的,使用请求处理线程的附属线程池来实现。日志文件可以按年龄进行覆盖,并且日志级别可通过 JMX 进行动态设置。性能测试工具已提供,帮助解决存在的性能问题,并寻找潜在的性能优化点。

Kafka 是一个分布式,分区化,可复制的提交日志服务。生产者将消息发布到 Kafka 主题,消费者订阅这些主题并消费这些消息。在 Kafka 集群上一个服务器称为一个 Broker。对于每一个主题,Kafka 群集保留一个用于缩放,并行化和容错性的分区。每个分区是一个有序,不可变的消息序列,并不断追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序的序列化编号。

偏移是由消费者来控制。典型的消费者将处理列表中的下一条消息,它可以以任何顺序接收消息,因为 Kafka 集群为所有发布的消息保留一段可配置的时间。这让消费者很灵活,他们可以来去自由而不影响群集,并适合像 Hadoop 集群这样的脱机消费者。生产者能够选择那一个主题,主题的那一个分区,来发布该消息。消费者自己也可以分配一个消费者组名,每个消息将发送给每个订阅消费者组的消费者。如果所有的消费者有不同的消费组,那么消息将被广播到每一个消费者。

Kafka 可以像一个传统的消息 Broker 使用。它具有高吞吐量,内置分区,可复制和容错等特性,这使得它成为大型消息处理应用的理想解决方案。Kafka 也可以用于高访问量的网站活动的跟踪机制。网站活动可以被发布,并且可以被实时处理,或加载到 Hadoop 或离线的数据仓库系统。Kafka 也可以用来作为一种日志整合方案。代替工作于日志文件,日志可以作为消息流处理。

Kafka 目前用于 LinkedIn,它每天处理超过 100 亿消息,持续负载平均每秒 172,000 消息。目前,无论从内部和外部的使用数据的应用程序大量使用多订阅者支持。每个消息发布出来后,基本上会有 5.5 个消息消费者使用,这导致的结果是每一天将有 550 亿的消息发送给实时消费者。367 个主题涵盖用户活动的主题和运营数据,其中最大将每天增加的平均 92GB 批量压缩消息。信息保存时间为 7 天,这些平均约 9.5 TB 压缩消息跨越主题。除了在线消费者,还有众多的大型 Hadoop 集群,它们消费频繁,高吞吐量,并行矩阵,作为离线数据负载的一部分。

作为入门,访问官方的 Apache Kafka 文档页,你可以学习更多和下载 Kafka。也有一篇来自 LinkedIn 的论文,标题为《构建LinkedIn 的实时活动数据管道》 , 该论文讨论Kafka 建立原因和Kafka 设计上的特性。

查看英文原文: Apache Kafka - A Different Kind of Messaging System


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-01-04 22:4911955

评论

发布
暂无评论
发现更多内容

如何为你的听众设计一张精密的地图

将军-技术演讲力教练

探秘持久内存(PMem)中无锁实现多线程安全的持久化数据结构

第四范式开发者社区

持久内存 PMem 多线程安全

直播:开发者如何抵达元宇宙

融云 RongCloud

开发者 元宇宙

复杂场景下,通信云服务商如何赋能开发者

融云 RongCloud

音视频 通信云 语音社交

EasyRecovery如何恢复md文件

淋雨

Camtasia

架构实战营4期第一模块作业

jialuooooo

架构实战营

大数据中心通过Perforce软件版本管理系统助力动力系统开发

龙智—DevSecOps解决方案

perforce 混合动力

网络安全之SQL注入深入分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 SQL注入

Flutter 2 渲染原理和如何实现视频渲染

声网

flutter 大前端 音视频

Java 面向对象精讲【下】

XiaoLin_Java

面向对象 12月日更

搭积木一样实现语音社交软件开发

融云 RongCloud

开发者 通信云 语音社交

愿当传播通信技术火种的普罗米修斯

融云 RongCloud

通信云 技术大会

风口之下,音视频应用出海的三大机遇

融云 RongCloud

音视频 通信 出海

前端领域的数据状态统一管理机制

鲸品堂

大前端

免杀技术的发展

喀拉峻

网络安全 安全 信息安全 免杀

质量基础设施“一站式”服务平台开发,一站式检验检测服务平台

电微13828808271

清空数组的几个方式

CRMEB

取代FMEA风险评估:如何在敏捷世界中管理风险

龙智—DevSecOps解决方案

风险管理 FMEA

控制台彩色输出

FunTester

Java 测试框架 Groovy FunTester Jansi

为什么说泛娱乐出海离不开这家公司

融云 RongCloud

音视频 通信云 社交 泛娱乐 出海

想在 KubeSphere 中进行自定义监控?来瞧瞧这

API7.ai 技术团队

云原生 API网关 监控工具 KubeSphere Apache APISIX

基于RPA的自动化优先,正在成为广大组织的主流管理思维

王吉伟频道

RPA 机器人流程自动化 业务流程管理 自动化优先 业务流程自动化

区块链农产品溯源系统开发,助力农业品牌打造

电微13828808271

如何用会声会影制作简约的倒计时片头?

懒得勤快

数据分析中应该掌握的五个数学概念

Geek_utwige

数据分析 Excel 统计学 基本概念

视镜:华为云媒体质量管理最新实践

华为云开发者联盟

音视频 华为云 媒体质量 视镜

QCon-OPPO数据平台Cloud Lake 降本增效实践

安第斯智能云

运维 后端 数据

nginx负载均衡策略你知道多少?

恒生LIGHT云社区

负载均衡 服务器 ngnix

架构实战营模块一作业

Sindorei

「架构实战营」

智慧社区建设解决方案,智慧社区综合服务平台开发

电微13828808271

【技术干货】前端性能优化——快速定位代码bug

云智慧AIOps社区

开源 大前端 技术分享 技术干货

Apache Kafka —一个不同的消息系统_Java_Bienvenido David_InfoQ精选文章