加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

千亿级eBay平台的Kafka深度实践

发布时间:2021-01-13 20:04:52 所属栏目:安全 来源:网络整理
导读:副标题#e# 《千亿级eBay平台的Kafka深度实践》要点: 本文介绍了千亿级eBay平台的Kafka深度实践,希望对您有用。如果有疑问,可以联系我们。 作者简介: 方伟 eBay中国研发中心 资深软件工程师 2010年加入eBay,一直在系统平台部负责设计和开发工作.最初负责
副标题[/!--empirenews.page--]

《千亿级eBay平台的Kafka深度实践》要点:
本文介绍了千亿级eBay平台的Kafka深度实践,希望对您有用。如果有疑问,可以联系我们。

作者简介:

方伟
eBay中国研发中心 资深软件工程师

2010年加入eBay,一直在系统平台部负责设计和开发工作.最初负责整个eBay的数据库应用层的开发和优化;接着从事用户行为数据的收集,数据管道的建立以及部分数据分析工作,是开源项目PulsarIO的主要贡献者之一;

目前致力于 eBay 的实时数据传输和计算平台,基于 Kafka 和 Storm 等开源软件.对建设高可用,高扩展性,并且可自动化运维的分布式系统有丰富经验.

前言

本文主题是我们最近一年做的,基于 Kafka 做的企业级数据传输平台,我们实现这个平台,以及这个平台最终上线并在对它运维过程中,得到的心得体会和经验教训.

这是本文主要分四部分:

  • eBay数据传输平台概述
    概述我们的数据传输平台,包括我们为什么搭建这个平台,这个平台到底是什么,主要技术架构是什么.
  • 平台核心服务
    对此平台当中核心服务,做一些稍微详细一点的描述.
  • 系统监控与自动化
    这个平台上线之后,我们怎么样对它做监控,以及我们花了一些力气在运维自动化上,减少运维人员人工处理.
  • Kafka 性能优化
    Kafka 性能优化和性能提升方面,我们做了哪些系统调整,使得 Kafka 有比较好的性能去运行.

1、eBay数据传输平台概述

1.1 为什么要搭建传输平台

首先是平台的概述,什么是数据传输平台,我们为什么要搭建这个平台.

其实在互联网企业当中有很多系统,一般来讲我们可以把互联网当中各个系统分成两类:

一类是在线系统,在线系统是直接跟用户打交道的站点系统,比如对于电子商务网站来说,我们有商品浏览,商品搜索.我们有卖家发布商品,我们有商品发布系统.

另一类是离线系统,离线系统最主要的比如我们做BI分析,站点报表,包括财务方面的报表,以及用户行为的分析,离线系统里我们一般有一些产品,比如大数据,最近我们会用 hadoop 做一些数据挖掘.

其实离线系统这些数据最终来源也是从在线系统来的,那我们怎么样从庞大在线系统中,把数据传输到离线系统,这就是我们需要解决的问题.

对于 eBay 来讲,它的在线系统肯定有好几万台,比如我们要采集用户行为,系统里有好几个 PB 的关系型数据库存储,我们要从数据库当中,把数据库变化传输到后台离线系统当中,怎么做呢?

近年来,对实时计算的需求越来越多,很多比如像欺诈检测,像用户个性推荐,这种类型的系统,都要求实时性,我不想等到一夜过后这个数据才过来,我希望马上拿到数据,能够进行计算,得到计算结果,然后反馈到其他在线系统.

在这种情况下,我们需要一个实时平台,把数据从在线系统传输到离线系统,所以这就是我们为什么要搭建这个传输平台.

1.2 为什么要用Kafka

我们为什么要用 Kafka,这里不对 Kafka 做过多介绍,说一下我们看中了 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 这样的开源产品,我们是不是可以直接拿来用呢?不需要做任何事情呢?

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读