在LinkedIn的 Kafka 生态系统

在LinkedIn的 Kafka 生态系统数据库

Apache Kafka是一个高度可扩展的消息传递系统,做为LinkedIn的中央数据管道起着相当重要的做用。 Kafka 是在2010年在LinkedIn开发的,它目前在1400多家经纪商处理超过1.4万亿条消息。Kafka 强大的耐用性和低延迟使咱们可以使用Kafka为LinkedIn提供一些新的关键任务用例。其中包括用基于Kafka的复制,威尼斯替代Espresso中的 MySQL复制,并支持下一代Databus(正在开发中)。安全

随着咱们的 Kafka 使用量继续快速增加,咱们必须解决一些重大问题,以使全部这些成为可能,因此咱们围绕 Kafka 开发了一个完整的生态系统。在这篇文章中,我将总结一些咱们的解决方案,这些解决方案对于使用 Kafka 的人来讲多是有用的,而且强调几个即将到来的活动,您能够从中了解更多。架构

Kafka 生态系统在LinkedIn
上图并未彻底捕捉到LinkedIn上的各类数据管道和拓扑结构,可是能够说明LinkedIn Kafka部署中的关键实体以及它们如何相互影响。并发

核心 Kafka 服务
Kafka 经纪人框架

咱们为每一个数据中心的不一样目的运行几组 Kafka 经纪人。咱们目前在LinkedIn上部署了近1400名经纪人,每周收到超过2 PB的数据。咱们一般运行Apache Kafka主干,每一个季度都会削减一个新的内部版本。分布式

Kafka 镜子制造商oop

镜像制造商使咱们可以经过从源集群中消费并生成目标集群来制做集群副本。在数据中心和数据中心内都有多个镜像管道。Todd Palino的文章总结了咱们如何使用这个来促进LinkedIn上的Kafka的多色。性能

模式注册表测试

咱们已经在LinkedIn的数据管道内将Avro标准化为通用语言。所以,每一个生产者都编码Avro数据,在模式注册中注册Avro模式,并在每一个序列化消息中嵌入一个模式ID。消费者从模式注册表服务中获取与ID相对应的模式,以反序列化Avro消息。虽然咱们的数据中心有多个模式注册表实例,但这些实例由包含模式的单个(复制)数据库支持。大数据

Kafka REST代理

Kafka REST是咱们为非Java客户端提供的HTTP代理。咱们的大多数Kafka集群都有一个关联的REST代理。Kafka REST也是主题行政运做的官方网关。

Nuage

Kafka大部分都是自助服务:用户定义本身的事件模式并开始制做主题。Kafka代理自动建立具备默认配置和分区计数的主题。最后,任何消费者均可以消费这个话题,使 Kafka 彻底开放。

随着 Kafka 的使用量不断增长,出现新的使用案例,上述方法中出现了一些限制。首先,一些主题须要自定义配置,须要对Kafka SRE进行特殊请求。其次,大多数用户很难发现和检查他们拥有的主题的元数据(例如,字节率,审计完整性,模式历史等)。第三,因为Kafka包含了各类安全功能,某些主题全部者可能但愿限制对主题的访问,并自行管理ACL。

Nuage是LinkedIn在线数据基础设施资源的自助服务门户,最近咱们与Nuage团队合做,在Nuage内增长了对Kafka的支持。这为用户提供了一个方便的地方来管理他们的主题和相关的元数据。Nuage将主题CRUD操做委托给Kafka REST,它抽象出Kafka行政事业的细微差异。

图书馆
LiKafka客户端库

LiKafka制做人包装开放源码制做人,但也进行模式注册,Avro编码,审计和支持大消息。审计事件计算在10分钟窗口中发送给每一个主题的事件数量。一样,消费者包装开源消费者,并进行模式查找,Avro解码和审计。

Kafka 推工做

Kafka推送工做用于将丰富的数据从Hadoop发送到Kafka,供在线服务使用。推送做业在CORP环境中的Hadoop集群上运行,并将数据生成到CORP数据部署Kafka集群中。镜像制造者将这些数据复制到PROD数据部署集群中。

Gobblin

Gobblin是LinkedIn的新的摄取框架,并贬低了 Camus,这是咱们之前的Kafka to Hadoop桥梁。它基本上是一个大的Hadoop做业,它将Kafka中的全部数据复制到Hadoop中进行离线处理。

监测服务
Kafka 监视器

这是Kafka部署的一套持续运行的验证测试,咱们利用这些测试来验证新版本以及监控现有部署。咱们目前正在监控基本但重要的指标,如端到端延迟和数据丢失。咱们预计将来咱们将在测试集群中使用这个框架来不断地测试管理操做的正确性(例如分区从新分配),甚至利用诸如Simoorg之类的错误注入框架来确保咱们可以知足咱们的可用性SLA即便在各类失败的状况下。

Kafka 审计

咱们的审计跟踪基础架构中有两个关键组件:

一种 Kafka 审计服务,用于消费和从新计算 Kafka 集群中的全部数据,并发出相似于追踪生产者的审计事件。这使咱们可以将Kafka集群上的计数与生产者计数进行协调,并检测数据丢失(若是有的话)。
Kafka 审计验证服务,持续监控数据的完整性,并提供用于查看审计跟踪的用户界面。此服务消耗并将审计事件插入审计数据库,并在数据延迟或丢失时发出警报。咱们使用审计数据库来调查发生的警报,并精确地指出数据丢失的位置。
Kafka 生态系统
地洞

Burrow是监控Kafka消费者健康的棘手问题的一个优雅的答案,并提供了一个消费者状态的全面视图。它提供消费滞后检查做为服务,而不须要指定阈值。它以主题分区粒度监视全部消费者的承诺偏移,并根据须要计算这些消费者的状态。

流处理在LinkedIn
Samza是LinkedIn的流处理平台,能够帮助用户尽快完成流处理工做并投入生产。流处理领域一直嗡嗡做响,有许多开源系统正在作相似的事情。与专一于很是普遍的功能集的其余流处理系统不一样,咱们专一于使Samza在LinkedIn规模下可靠,高性能和可操做。如今咱们有不少生产工做量正在运行,咱们能够把注意力放在拓宽功能集上。这篇较早的博客文章详细介绍了咱们关于相关性,分析,站点监控,安全等方面的生产用例以及咱们正在开发的一些新功能。

即将举行的活动
若是您有兴趣进一步了解咱们的Kafka生态系统,咱们如何部署和排除Kafka故障,以及咱们的新特性 /用例,咱们邀请您参加这些即将到来的会议:

4月26日:Espresso数据库复制与Kafka @ Kafka峰会:Espresso是LinkedIn的分布式文档商店,托管咱们最重要的成员数据。Tom Quiggle将介绍为何Espresso将从MySQL的内置复制机制切换到Kafka,以及Espresso如何将Kafka做为复制流 - 这是一个将Kafka的耐久性和可用性保证加入测试的用例! 4月26日:更多的数据中心,更多的问题 @ Kafka峰会:Todd Palino将谈论多数据中心和多层 Kafka 集群的基础架构,并就如何监控整个生态系统提供实用技巧。 4月26日: 在LinkedIn Kafka 天,2015年 @ Kafka 峰会:霍埃尔·科什将深刻了解一些最困难,最突出的 Kafka 生产问题是LinkedIn创下2015年该谈话会在每一个停运及其影响,以及方法到检测,调查和整治。 5月10日:创建一个自助服务 Kafka 系统 @ 阿帕奇:大数据:霍埃尔·科什将提供一个深刻了解成什么须要经过共同编织的安全性,配额的RESTful API和Nuage使 Kafka 一个真正的多租户服务。 5月9日: 背后缩放流处理应用程序的秘密 @ 阿帕奇:大数据:Navina拉梅什将描述阿帕奇Samza对国家管理和容错方法,并讨论了如何能够有效地用于扩展状态流处理应用程序。 6月28-30日: λ-少在LinkedIn @流处理@规模的Hadoop峰会:Yi·潘和卡蒂克·帕拉梅西瓦姆将突出Samza的主要优点是实时流处理平台,其在LinkedIn使用的动手概述。

相关文章
相关标签/搜索