千亿级eBay平台的Kafka深度实践
副标题[/!--empirenews.page--]
《千亿级eBay平台的Kafka深度实践》要点: 作者简介:
前言本文主题是我们最近一年做的,基于 Kafka 做的企业级数据传输平台,我们实现这个平台,以及这个平台最终上线并在对它运维过程中,得到的心得体会和经验教训. 这是本文主要分四部分:
1、eBay数据传输平台概述1.1 为什么要搭建传输平台首先是平台的概述,什么是数据传输平台,我们为什么要搭建这个平台. 其实在互联网企业当中有很多系统,一般来讲我们可以把互联网当中各个系统分成两类:
其实离线系统这些数据最终来源也是从在线系统来的,那我们怎么样从庞大在线系统中,把数据传输到离线系统,这就是我们需要解决的问题. 对于 eBay 来讲,它的在线系统肯定有好几万台,比如我们要采集用户行为,系统里有好几个 PB 的关系型数据库存储,我们要从数据库当中,把数据库变化传输到后台离线系统当中,怎么做呢? 近年来,对实时计算的需求越来越多,很多比如像欺诈检测,像用户个性推荐,这种类型的系统,都要求实时性,我不想等到一夜过后这个数据才过来,我希望马上拿到数据,能够进行计算,得到计算结果,然后反馈到其他在线系统. 在这种情况下,我们需要一个实时平台,把数据从在线系统传输到离线系统,所以这就是我们为什么要搭建这个传输平台. 1.2 为什么要用Kafka我们为什么要用 Kafka,这里不对 Kafka 做过多介绍,说一下我们看中了 Kafka 哪些点,我们为什么会最终选用 Kafka 做数据传输平台. 其实我们数据传输平台是很典型消息中间件,消息中间件市面上有很多产品,为什么要用 Kafka 呢?
除此之外它也有很好的伸缩性,你增加 Kafka 节点,处理是直线性增长的,同时也可以保证高可用性,像 Kafka 一些节点宕掉的话,不会影响到数据完整性. 1.3 ?Kafka的处理能力既然选用了 Kafka,那么 eBay 在 Kafka 上有多少数据呢?我们大概放了哪些数据在 Kafka 上呢? 目前我们大概有三十多个 Kafka 集群,这些 ?Kafka ?集群主要建立在 eBay 自己的私有云上面,我们基于 OpenStark 搭建的自己私有云,所以我们 Kafka 的节点都是虚拟机. 我们总共有800多台虚拟机,在这些集群里我们总共有1200多个应用跑在上面,这些应用总数加起来超过2.5万个,每天消息达到1000亿次以上.所以这个可以看出这是很典型的大数据实时传输的例子. 那我们为什么要分这么多 Kafka 集群? 这个非常类似数据库的分库,我们基于业务垂直划分 Kafka 集群,比如所有用户行为,用户点击、搜索、对商品的浏览等等用户行为,我们同样会放到 Kafka 集群里,对于所有数据库变化,比如当一个卖价要修改一个价格,这个数据变化我们会放在 Kafka 集群里. 比如还有一些站点,本身自己想发出一些业务事件,比如当一个商品成交了,这些业务事件我们会放在另外一个基于 Kafka 的业务集群了. 我们知道 LinkedIn 是最初提出 Kafka 的,他们应该有60多个 Kafka . 那我们有 Kafka 这样的开源产品,我们是不是可以直接拿来用呢?不需要做任何事情呢? (编辑:南京站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |