Skip to main content

Pulsar

info

Mastering Apache Pulsar 第3章读书笔记

Pulsar起源

在2013年,有8亿用户使用雅虎公司提供的各类服务,在雅虎公司以面向服务的架构中,消息系统起着至关作用。在评估现有消息系统技术后,发现没有一项能够满足如此大的规模需求,雅虎公司决定自己开发Pulsar。

Pulsar设计理念

基本设计原则:模块化同时不向性能妥协,由此衍生的设计点:多租户、异地备份。

多租户

通过命名空间(一组topic的集合),Pulsar将允许客户端运行在集群的特定部分,详见第4章。

异地备份

性能

模块化

Pulsar生态

作为开源项目,广大开发者构建了强大工具集来配合使用Pulsar底层技术,主要有:Pulsar Function、Pulsar IO和Pulsar SQL。

Pulsar Function

如下图所示,Pulsar Function是从topic获取数据、进行计算、发布到其他topic的轻量级进程。本着模块化的设计思想,Pulsar Function可以使用Java、Python和Go多种语言开发,其运行时和Pulsar运行时互相独立。

Pulsar Function

Pulsar IO

连接器框架Pulsar IO让Pulsar topic成为其他系统的输入或输出,如下图所示,MySQL数据库记录先输出到Pulsar topic,接着由Pulsar topic输出到Elastic Search上的某个index。和Pulsar Function一样也是独立模块,详见第7章。

Pulsar IO Example

Pulsar SQL

Pulsar SQL使用Apache Presto来实现通过SQL查询Pulsar topic中的数据,Pulsar SQL只能读取数据,而Kafka的KSQL允许创建新topic,详见第10章。

Pulsar成名之路

通过3家使用Pulsar的公司讲述Pulsar如何帮助它们解决业务问题,分别是雅虎日本、Splunk和Iterable,相关资料:

总结

Pulsar相比于Kafka等其他消息系统的特点:

  1. 低延迟消息传递;
  2. 异地备份;
  3. 同时兼容队列和事件流模型。