作者:禅与计算机程序设计艺术

1.简介

概述

Pulsar是一个开源分布式消息系统,由Apache Software Foundation开发。它最初起源于亚马逊云服务的Kinesis平台,2017年2月开源发布。它的主要功能包括消息发布/订阅、消息持久化、消息存储、消息消费、消息路由、消息跟踪、数据分析、函数计算等。在国内也已经有很多公司采用Pulsar作为替代Kafka的消息队列产品。
一般来说,Apache Pulsar可以视作Kafka或者RabbitMQ的分支版本,具有更高吞吐量和低延迟等优点。但同时它还具备很多独有的特性,如支持事务处理、通过基于角色的访问控制(RBAC)对授权进行细粒度管理、支持多租户隔离、提供灾难恢复功能、支持多语言客户端库等。因此,Apache Pulsar可以用来构建复杂的事件驱动架构。
在这里,我们将结合个人经验以及相关知识介绍一下Pulsar的应用场景及其架构设计。本文将不涉及太多理论性的内容,只会简单介绍一些基本概念和原理。

2. 基本概念术语说明

(1)消息模型

消息模型是指用于传递数据的通信协议或约定。Pulsar消息模型有两种:publish-and-subscribe 和 topics with subscriptions 。

  • publish-and-subscribe 是单播模型,一条消息只被发送到一个订阅者。类似于TCP/IP协议栈中点对点通信模型。
  • topics with subscriptions 则是广播模型,一条消息被复制到所有订阅者(fanout)。这种模式类似于TCP/IP协议栈中的广播通信模型。

&#