[译] 雅虎日本如何用 Pulsar 构建日均千亿的消息平台

标签: dev | 发表时间:2019-11-19 00:00 | 作者:
出处:http://itindex.net/relian

雅虎日本是一家雅虎和软银合资的日本互联网公司,是日本最受欢迎的门户网站之一。雅虎日本的互联网服务在日本市场占主导地位。

下图从三个维度显示了雅虎日本的经营规模。第一个是服务数量,雅虎日本提供上百种互联网服务;第二个是服务器数量,雅虎日本使用超过 150,000 台服务器(大多为裸机服务器)全天候支持这上百种互联网服务的正常运作;第三个是每月总页面浏览量,2017 年的数据显示,雅虎日本每月浏览量超过 700 亿。由此可见,雅虎日本的服务规模之大。

挑战

运营规模巨大对雅虎日本来说是个挑战。高性能和可扩展的服务才能满足海量用户的需求。同时还需要提供多租户支持来满足运营众多服务的需求。有时需要处理敏感消息或关键任务,因此持久性也很重要。此外,雅虎拥有众多的数据中心,对跨地域复制有强烈的需求。在诸多方面,我们面临着巨大挑战,希望找到一个稳定且可扩展的消息平台,能满足上述需求并大规模地运行服务,同时能确保数据的完整性。

为什么选择 Apache Pulsar

为了解决这些挑战,我们开始调研各种消息平台。

Apache Pulsar vs Apache Kafka

首先,我们比较了 Apache Pulsar 和 Apache Kafka,这两个业界不同的消息系统,结果如下。

这两个系统最主要的不同在于数据分布。在数据负载均衡方面,Pulsar 比 Kafka 处理得更胜一筹。以下图为例,图中有 1 个分区,3 个存储节点,每个分区数据存储两个副本。Kafka 中,分区中的所有数据都保存在 leader broker(Broker 2)中,然后复制到另一个 follower broker(Broker 1)中。Broker 3 既不是 leader 也不是 follower,因此没有任何数据。在 Kafka 中,由于一个分区中的所有数据都由一个 broker 保存,因此分区的容量受 broker 的容量限制。一旦要扩展分区,就需要重新分布数据;否则就会出现负载不均衡的情况。而 Pulsar 中,分区中的数据被划分为粒度更细的单元,称为分片(segment)。它们均匀地分布和保存在 bookies 中,分区容量不受单个 bookie 节点容量的限制,扩展分区时不需要重新分布数据。因此,Pulsar 比 Kafka 更灵活,更容易扩展。

另一个区别是跨地域复制。Kafka 使用 MirrorMaker 来处理跨地域复制,但需要使用额外的机器来运行和管理 MirrorMaker。而 Pulsar 内置了跨地域复制功能,不需要额外部署跨地域复制组件。

OpenMessaging Benchmark

使用 OpenMessaging Benchmark 可以很容易比较不同消息处理系统。据报道,Apache Pulsar 处理吞吐量和延迟的性能更好。图中蓝线代表 Pulsar,红线代表 Kafka。左图显示吞吐量,上方线条说明吞吐量更高。右图显示延迟,下方线条说明延迟更低。

雅虎日本如何用Pulsar构建日均千亿的消息平台?

为什么 Apache Pulsar 最适合

这些对比说明 Apache Pulsar 比 Apache Kafka 更好,所以我们决定进一步研究 Apache Pulsar,并总结了 Pulsar 更适合我们的原因。

高性能

即使主题数量巨大,还要保证数据的可靠性,Apache Pulsar 也能实现高吞吐和低延迟。例如,Oath Inc. 每天要处理 230 万个 topic,1000 亿条消息。在这个巨大的体量下,要确保消息不能丢失且必须按顺序处理。Apache Pulsar 不仅能满足这些需求,还实现了 1,000,000 吞吐量(msg / s)和 5 ms 的延迟。

易扩展

Apache Pulsar 扩展性很好。要实现扩容,只需添加服务器即可。Pulsar 的服务层和存储层是分开的,可以根据数据路径灵活地添加 broker 或 bookie。如果需要提升服务容量,添加 broker 即可。如果需要扩大存储容量,添加 bookie 即可。

多租户

多租户是指多种服务共用一个 Pulsar 系统。每个服务和应用程序作为 “租户” 使用 Pulsar。因此,不同的服务无需单独维护各自消息系统。Apache Pulsar 有不同的认证和授权机制,可保护消息不被拦截。可以配置认证和授权机制,并共享到命名空间或主题,从而保护消息。因此,可以在一个 Pulsar 系统上运行多种服务,有效降低维护和劳动力成本。

跨地域复制

雅虎日本在多个数据中心运行很多服务。Pulsar 提供内置的跨地域复制功能,在数据中心之间复制消息,可以有效处理灾备,恢复数据,提高服务质量。更重要的是,跨地域复制是 Pulsar 的内置功能,方便启用和使用。

Pulsar Functions

Pulsar Functions 是轻量级计算框架(如 AWS lambda 或 Google Cloud Functions),不需要外部系统(如 Apache Heron,Apache Storm,Apache Spark 或其他类似系统)。只需构造逻辑并部署至 Pulsar 集群。Pulsar Functions 支持 Java、Python 和 Go 语言。

Pulsar on Kubernetes

Kubernetes 有众多用户,雅虎日本也是其中之一。在 Kubernetes 集群上部署 Pulsar 很容易。下图展示了 Pulsar 在 Kubernetes 引擎上的使用状态。

经过详细调研,我们发现 Apache Pulsar 不仅比 Apache Kafka 的性能更好,还能够满足我们企业运行的所有需求,在 Kubernetes 上容易部署,所以我们最终决定采用 Apache Pulsar 作为内部消息平台。

Apache Pulsar 在雅虎日本的应用

雅虎日本在生产环境中使用 Pulsar 已经好几年了。我来分享下 Apache Pulsar 在雅虎日本的应用场景。

下图是雅虎日本的系统构架。我们有两个数据中心:一个在东部,一个在西部。每个数据中心都有 broker、bookie、ZooKeeper 和 WebSocket 代理服务器。我们使用 Prometheus 收集指标,并通过 Grafana 将其可视化。

Prometheus 可以用来监控 topic、生产者和消费者的数量,如下图所示。

自助服务工具

在雅虎日本,我们开发了一套工具,用来创建和管理租户、命名空间和主题。用户可以在 UI 界面自己创建租户和命名空间,并配置设置。目前,这个 UI 仅在雅虎日本内部使用,所以是日语的,没有开源。使用这个 UI,可以创建租户和命名空间,并查看 topic 的统计信息,如吞吐量、平均消息规模等。

案例 1: 内容更新通知

我们把 Apache Pulsar 作为通知服务系统使用。各种内容文件(例如天气,地图或新闻数据)从合作伙伴公司推送到雅虎日本。服务需要了解这些更新的内容,所以服务把文件当作 topic。内容更新时会向 topic 发送通知。服务一旦收到通知,就会从文件服务器获取更新的内容文件。

案例 2: 邮件服务中的工作队列

我们使用 Apache Pulsar 构建异步工作队列。邮件索引工作繁重,所以异步执行。首先,Mail BE 服务器中的生产者在 Pulsar 中注册 job,消费者按照自己的节奏从 Pulsar 获取 job。如果索引失败,生产者会重新注册。

案例 3: 日志管道

我们使用 Apache Pulsar 收集日志。雅虎日本几乎所有的服务和应用程序都运行 PaaS 平台(如 Heron)或 CaaS 平台(如 Kubernetes),我们想从中收集日志。首先,日志发布到 Pulsar 后会分成 topic。根据使用 Pulsar Functions 的最终目的地和服务,日志最终会发送到其他数据库或平台,例如 HBase、Prometheus 和 Twilio。下图是雅虎日本的日志收集架构。

结论

Apache Pulsar 是一个快速、持久、可扩展的 pub-sub 消息系统,配备很多有用的内置功能,如跨地域复制、多租户、Pulsar Functions 等。

多年来,雅虎日本使用 Apache Pulsar,关注 Pulsar 社区的新闻,更新和活动,在应用场景中使用 Pulsar 新功能,Pulsar 的稳定性一直很好。

Pulsar 社区虽然年轻,但发展迅猛,在不同的应用场景下不断有新的案例落地。我们会持续关注并和 Apache Pulsar 社区深入合作,进一步完善、优化 Pulsar 的特性和功能。

相关信息

以下是 Apache Pulsar 的相关信息:

  • Apache Pulsar: https://pulsar.apache.org/

  • 联系: https://apache-pulsar.slack.com/ [email protected] [email protected]

  • 在线视频: 

    https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321374.html

  • 演示文稿: 

    https://conferences.oreilly.com/oscon/oscon-or-2018/public/schedule/detail/69704

关于作者

Nozomi Kurihara, 雅虎日本消息平台团队经理、Apache Pulsar 项目 committer。负责创建基于 Apache Pulsar pub-sub 为中心的消息处理平台,该平台能够处理海量服务和应用程序流量。

  • 作者 | Nozomi Kurihara

  • 审校 | Jennifer + Sijie + Irene

  • 编辑 | Irene

新福利:

从11月01日开始至12月06日截止,一共五周时间,每周五我会从公众号底部留言+转发+在看综合最多的读者中抽取一名读者,免费包邮送实体新书 《Flink入门与实战》 ,留言互动起来吧~

上周获奖名单:布拉没有格




猜你喜欢

1、 马蜂窝实时计算平台的演进

2、 Apache Spark 3.0 预览版正式发布,多项重大功能发布

3、 YARN 在快手的应用实践与技术演进之路

4、 京东 8000+ 台 Hadoop 集群平台化之路

过往记忆大数据微信群,请添加微信:fangzhen0219,备注【进群】

相关 [雅虎日本 pulsar 千亿] 推荐:

[译] 雅虎日本如何用 Pulsar 构建日均千亿的消息平台

- - IT瘾-dev
雅虎日本是一家雅虎和软银合资的日本互联网公司,是日本最受欢迎的门户网站之一. 雅虎日本的互联网服务在日本市场占主导地位. 下图从三个维度显示了雅虎日本的经营规模. 第一个是服务数量,雅虎日本提供上百种互联网服务;第二个是服务器数量,雅虎日本使用超过 150,000 台服务器(大多为裸机服务器)全天候支持这上百种互联网服务的正常运作;第三个是每月总页面浏览量,2017 年的数据显示,雅虎日本每月浏览量超过 700 亿.

Pulsar 在涂鸦智能的实践

- - IT瘾-dev
作者:张永红,开放平台组研发工程师(涂鸦智能). 涂鸦智能是一个全球化智能平台和“AI+IoT”开发者平台,也是世界排名前列的语音 AI 交互平台. 连接消费者、制作品牌、OEM 厂商和零售连锁的智能化需求,为客户提供一站式人工智能物联网的解决方案,并且涵盖了硬件介入、云服务以及 APP 软件开发三方面,形成人工智能+制造业的服务闭环,为消费类 IoT 智能设备提供 B 端技术及商业模式升级服务,从而满足消费者对硬件产品更高的诉求.

Apache Pulsar 在 BIGO 的性能调优实战(上)

- - IT瘾-dev
️ 阅读本文大约需要 10 分钟. 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频). Bigo Live 在 150 多个国家/地区兴起,Likee 有 1 亿多用户,并在 Z 世代中很受欢迎.

Pulsar:下一代消息引擎真的这么强吗?

- - 掘金 后端
我们最近在做新业务的技术选型,其中涉及到了对消息中间件的选择;结合我们的实际情况希望它能满足以下几个要求:. 友好的云原生支持:因为现在的主力语言是. Go,同时在运维上能够足够简单. 最好是有一些方便好用的特性,比如:延时消息、死信队列、多租户等. 当然还有一些水平扩容、吞吐量、低延迟这些特性就不用多说了,几乎所有成熟的消息中间件都能满足这些要求.

雅虎日本新推网络硬盘服务 容量最大将达1TB

- Vince - cnBeta.COM
感谢啊...啊...啊...的投递. 雅虎日本于10月10日推出了一个新的存储服务:雅虎盒子,它为用户提供了文件格式丰富的数据存储服务. 雅虎盒子让你将自己电脑上的照片、视频、文档、音乐、声音等格式的文件存储在网络上,保全你珍贵的回忆和重要的数据.

千亿做空资金杀到?

- - 南方周末-新闻
相对于融券做空,融资做多的门槛要低不少,这隐藏着政策的导向性——鼓励做多. 一股“神秘”的做空力量正在杀入A股. Wind数据显示,在2020年11月期间,A股市场融券余额达到历史高峰,一度接近1200亿元,而融券规模在年初时还不到140亿元,暴增1000亿元. 融券,是做空的一种方式,与融资相对应.

空气污染导致中国损失上千亿美元

- - VOA News: 中文主页
美国麻省理工学院最近的一份研究显示,大气污染导致的疾病每年给中国带来上千亿美元的经济损失. 这份研究显示,空气中臭氧和微粒污染给中国经济造成的影响已经扩大. 研究通过臭氧和微粒给人健康造成的影响分析大气污染给中国经济构成的损失. 这两种污染能够导致呼吸和心血管系统疾病. 研究对人生病请假以及看病治疗的损失量化后发现,大气污染在2005年给中国经济带来1千120亿美元的损失,比1975年的220亿美元大幅上升.

苹果第四季度财报出炉 — 年营收已过千亿

- ItTalks - 爱范儿 · Beats of Bits
苹果(Apple)今天放出了 2011 财年第四季度的财报,收入比第三季度略有下降,不过仍然是夸张的 282.7 亿美元,同比去年同期增长 39%,这其中 Mac 的销售非常迅猛,而中国市场也以疯狂的速度增长着,我们将电话会议的主要内容总结如下:. 总收入 282.7 亿美元,同比增长 39%,净收入 66.2 亿美元,同比增长 54%,每股收益 7.05 美元,尽管没有第三季度亮眼,但仍然是公司有史以来最佳的第四季度;.

11月财政支出逾1.1万亿 超收入近5千亿

- - 网易头条新闻
11月份,全国财政收入6457.32亿元,比去年同月增加616.63亿元,增长10.6%. 其中,中央财政收入3113.93亿元,同比增长8.2%;地方本级收入3343.39亿元,同比增长12.8%. 财政收入中的税收收入5582.12亿元,同比增长2.7%. 本月财政收入增幅延续了9月份以来的回落态势,比上月增幅降低6.3个百分点,主要是受经济增速趋缓、提高个.

ARM停止授权,华为迎来最严峻挑战,任正非:投资千亿打造全球最强信息产业

- - 机器之心
5 月 22 日下午,ARM 中国公关突然通知准备参加 6 月初深圳 AI 新产品发布的媒体,原定活动计划被推迟. 而在当天晚上 7 点,英国广播公司(BBC)爆出 ARM 内部文件:因为包含来自美国的技术,ARM 已经要求员工「暂停所有与华为及其子公司正在生效的合约、支持权利及任何未决约定」. 我们目前从 ARM 中国相关人士处了解到,原定于 6 月 6 号举行的 ARM 新品发布会已延后举行,无法确定新的日期(但并未取消).