Pulsar 是一个来自eBay的高扩展性、高可用性、基于事件驱动的开源实时分析平台和流处理框架,它能够实时收集和处理用户行为和业务事件。Pulsar使用一种类似SQL的事件处理语言并通过对数据进行加工(如聚合、补充、变异和过滤等)以实现流的自定义创建。Pulsar具有实时Session化、多维度量聚合等功能,并具有每秒百万级流量处理能力和基于标准的分布式和跨越多个数据中心云部署架构等特征。
作为全球性的商务平台和支付行业领先者,eBay拥有海量的用户行为数据。过去,eBay使用面向批处理的数据平台(如Hadoop)对用户行为进行分析以提供良好的用户体验。近来,eBay商务平台出现了新的需求和使用场景,如实时生成报表和仪表盘、业务活动监控、个性化设置、市场营销和广告、不良行为监测等。至此,批量的大数据处理平台已不能满足业务对实时性的要求。于是,eBay研发团队基于Pulsar CEP( Complex Event Processing即复杂事件处理 )框架并实现了Pulsar实时分析数据管道,从而开发出了Pulsar。eBay的CEP框架提供了一个基于Java的CEP框架和用来在云环境中构建、部署和管理CEP应用的工具。Pulsar实时分析数据管道由一些松耦合的阶段组成,从而提供了一个高可靠性和高扩展性的扩展模型。实时分析数据管道处理过程包括:补充、过滤、变异、聚合以及状态处理。
Pulsar的主要组件包括:
Pulsar的系统架构如下图所示:
从Pulsar的官网得知,Pulsar具有以下主要特征:
Pulsar CEP的处理逻辑能够部署在跨数据中心的许多节点(即CEP单元)上,每个节点都能够使用输入通道、输出通道以及处理逻辑进行配置,事件通常基于一个Key(如用户id)被分配到对应的节点上处理。在集群中扩展节点时,Pulsar借助Zookeeper实现了自动检测新的单元、重新平衡事件处理以及对故障节点的处理。Pulsar的部署架构如下图所示:
Pulsar已经在eBay生成环境中用来对用户行为事件进行分析。近日,eBay还宣布将Pulsar基于 GPLv2协议 开源,代码托管在 GitHub ,且Pulsar开放团队仍继续以开放的方式开发Pulsar。更多关于Pulsar信息,请读者阅读eBay官方提供的一篇介绍Pulsar的 文章 、Pulsar的 FAQ 内容以及GitHub提供的 Wiki页面 和 入门指南 。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。