小白初识 Apache Pulsar

小白学技术系列又来了! 继 Hadoop 和云原生之后,这次我们来聊聊,分布式消息系统 ——Apache Pulsar。

Apache Pulsar是一个企业级的发布订阅(pub-sub)消 息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软件基金会的一个孵化器项目。

由于事先跟人讲好,要向不懂技术的人进行科普,竟至把自己难到了:如果不从抽象的概念入手,该怎么讲解比较好呢? 我想,或许通过日常生活的场景进行类比,会是不错的选择吧。

那么什么是消息系统呢? 医院中帮助病人找到对应诊室的分诊台; 公司、企业帮助访客登记的前台、传达室; 帮助用户接通电话移动供应商……似乎都可以理解为某种类型的消息系统,但它们与 Apache Pulsar 的情况似乎又不太相同,差别在哪里呢? 在Apache Pulsar中有个很重要的概念:订阅(Subscription)。

说到“订阅”,不禁让人联想到订阅报刊、杂志,我觉得,实在没有比用邮局打比方,更形象贴切的了——虽然,在互联网的冲击下,传统媒体越来越走向没落……

现在,让我们来回顾一下订阅报刊、杂志的过程:

  1. 读者到邮局订阅报刊/杂志;

  2. 报社/杂志社在发刊后,将报刊/杂志配送到邮局;

  3. 邮局再根据订阅,将报刊/杂志配送到读者。

这是一个比较简单的个人订阅流程。 但实际情况,由于发行刊物的种类丰富、订阅读者的人数众多、读者订阅刊物的情况复杂(可能是1本或多本)、读者所在地区覆盖范围很广……可以想象,为了能够把订阅的刊物,无误地分发到读者手中,需要整个中国邮政系统来保证。

如果你觉得中国邮政系统已经让人眼花缭乱了,但你知道吗? 跟互联网产品的复杂度相比,这都还只能算是小Case。 为什么呢? 因为报刊种类再多,也是有数儿的; 而且从发行,到消费,通常是单方向的。 但是互联网产品呢,看看抖音吧:

每个用户都可以发布内容,也可以关注(即订阅)其他用户发布的内容,同时还可以被其他用户关注; 再加上互联网突破了地域限制,因此用户数量可观,这错综复杂的“订阅”编织成一个极其复杂的网络,是不是更加令人难以捉摸呢? 除了 巨大的业务压力,在互联网场景下,更加对实时性提出了更高的要求——你能想象自己订阅一个内容,要盯着进度条等两三天才能看到的那种,令人崩溃的心情吗?你看,这就是我们需要分布式消息系统Apache Pulsar的原因了。

让我们带着对邮政系统形成的初步印象,来一窥Pulsar:

很像对不对,比较一下术语:

邮局

Pulsar

说明

杂志社/报社

producer

向Pulsar发送数据的应用程序。

读者

consumer

从Pulsar读取数据的应用程序。

邮局

topic

Pulsar的核心资源,用于从producer到 consumer传输消息。

刊物

Message

producer发送至topic的内容,以及consumer从topic消费的内容。

中国邮政

namespace

一组topic的管理单位。

现在,你已经基本了解了Pulsar的基本概念和工作原理。

Pulsar从2015年开始部署到生产环境, 至今已运行多年,助 力Yahoo的主要应用,如Yahoo Mail、Yahoo Finance、Yahoo Sports、Flickr、Gemini广告平台和Yahoo分布式键值存储系统

最后,让我们再来简单领略下它的实际运行情况: 每天处理超过1000亿个消息; 支持着140万个主题; 整体的消息发布延迟小于5毫秒—— 想象一下,这会是怎样一个数字飞速跳动的繁忙场景啊

相关文章:

睿齐

技术传播从 业者

品牌内容策划

自由摄影师

自由撰稿人

公众号:techcomm / htstory

微信号:bgrichi

邮箱:hash_0813@163.com