Apache Pulsar之什么是Apache Pulsar?

【Apache Pulsar之什么是Apache Pulsar?】Table of
的概念和术语
数据分区
数据完整性保证(简述)
在生产环境的应用
总结
是一个企业级的发布-订阅消息系统,最初是由雅虎开发,主要应用于雅虎邮件、金融、体育、、Gemin广告平台,以及雅虎的分布式key-value存储 。
的概念和术语
将数据输入的应用程序称为生产者,而使用数据的应用程序称为消费者,有时也称为订阅者 。按照一般发布-订阅模式,本课题是的核心资源 。简单来说,主题表示生产者向其中添加数据和消费者从中提取数据的通道 。如图所示 。

Apache Pulsar之什么是Apache Pulsar?

文章插图

Apache Pulsar之什么是Apache Pulsar?

文章插图
生产者,消费者和主题
是从头开始构建的,以支持多租户用例 。支持两个多租户特定的资源来启用多租户: 。在系统中,一个代表一个租户 。举个例子,假设部署了一个集群来支持多个应用程序,在企业中每个都可以代表一个团队,一个核心的功能,或者一个产品线,举几个例子,每个依次可以包含多个,例如,每个应用程序或用例有一个 。一个可以包含多个Topic,如下图:
Apache Pulsar之什么是Apache Pulsar?

文章插图
关系图
是的基本管理单元 。在级别,可以设置权限,备份fine-tune,跨集群管理消息数据的地理复制geo-,控制消息到期 ,和一些关键的操作 。一个中的所有Topic都继承相同的设置,为同时配置多个主题提供了强大的管理控制,根据可见的级别,有以下两种不同类型:
虽然local 和 因范围的不同而不同,但是可以通过适当的设置在不同的团队或不同的组织之间共享它们 。一旦提供了对名称空间的写入权限,应用程序就可以对名称空间中的任何主题进行写入 。如果主题不存在,则在生产者首次写入主题时动态创建该主题(这一点跟Kafka一样) 。
如前所述,每个可以有一个或多个主题,每个主题可以有多个订阅,每个订阅都被设置为保留和接收关于主题发布的所有消息 。为了给应用程序提供更大的灵活性,支持三种不同类型的订阅,它们可以共存于同一个主题:
下图显示了3种不同类型的订阅,订阅提供了一个主要的优势,因为它们解耦了消息的生成和使用方式 。支持不同类型的订阅,在不增加开发复杂性的情况下为应用程序提供了弹性
Apache Pulsar之什么是Apache Pulsar?

文章插图
数据分区
Apache Pulsar之什么是Apache Pulsar?

文章插图
输入topic的数据可以从几兆字节到几TB不等,这意味着,在某些情况下,topic需要能够维持稳定的低吞吐量,而在其他情况下,则需要维持非常高的吞吐量,这取决于消费者的数量,那么,当一个topic需要高吞吐量而另一个topic需要低吞吐量时,会发生什么情况呢?为了解决这个问题,能够在一个topic中分割数据并将其存储在多台机器上 。这些数据碎片称为分区 。
跨一组机器使用分区是跨多个节点处理大量数据的常用方法,同时还可以实现高吞吐量 。默认情况下,的Topic是作为非分区主题创建的,但是可以简使用简单的CLI命令或API调用创建分区主题并为它们分配特定数量的分区 。
当创建分区topic时,会自动对数据进行分区,并确保消费者和生产者可以不受分区限制 。也就是说,当topic被分区时,之前使用单个分区主题编写的应用程序仍然可以执行,不需要改代码,使分区成为纯粹的管理级问题,而不是应用程序级问题 。