问题导读
1.Pulsar的topic是什么结构?
2.Pulsar支持哪三种订阅类型?
3.Pulsar租户是什么?
Pulsar我们或许听说过,他是跟kafka类似的组件。那么它到底怎么回事,我们这里详细说说。
Apache Flink和Apache Pulsar的开源数据技术框架可以以不同的方式集成,以提供大规模的弹性数据处理。 在这篇文章中,我将简要介绍Pulsar及其与其他消息传递系统的差异化元素,并描述Pulsar和Flink可以协同工作的方式,为大规模弹性数据处理提供无缝的开发人员体验。
Pulsar介绍
Apache Pulsar是一个开源的分布式pub-sub消息系统,由Apache Software Foundation管理。 Pulsar是一种用于服务器到服务器消息传递的多租户,高性能解决方案,包括多个功能,例如Pulsar实例中对多个集群的本机支持,跨集群的消息的无缝geo-replication,非常低的发布和端到端 - 延迟,超过一百万个主题的无缝可扩展性,以及由Apache BookKeeper等提供的持久消息存储保证消息传递。现在让我们讨论Pulsar和其它pub-sub消息传递框架之间的主要区别:
第一个差异化因素源于这样一个事实:虽然Pulsar提供了灵活的pub-sub消息传递系统,但它也有持久的日志存储支持 - 因此在一个框架下结合了消息传递和存储。由于采用了分层架构,Pulsar提供即时故障恢复,独立可扩展性和无平衡的集群扩展。
Pulsar的架构遵循与其他pub-sub系统类似的模式,因为框架在主题中被组织为主要数据实体,生产者向主体发送数据,消费者从主题(topic)接收数据,如下图所示。
Topic是Pulsar的核心概念,表示一个“channel”,Producer可以写入数据,Consumer从中消费数据(Kafka、RocketMQ都是这样)。 Topic名称的URL类似如下的结构: {persistent|non-persistent}://tenant/namespace/topic - persistent|non-persistent表示数据是否持久化(Pulsar支持消息持久化和非持久化两种模式)
- Tenant为租户
- Namespace一般聚合一系列相关的Topic,一个租户下可以有多个Namespace
Pulsar的第二个区别是该框架是从多开始考虑的多开始构建的。 这意味着每个Pulsar主题都有一个分层的管理结构,使得资源的分配以及团队之间的资源管理和协调变得高效和容易。 借助Pulsar的多租户结构,数据平台维护人员可以在没有摩擦的情况下加入新团队,因为Pulsar在属性(租户),命名空间或主题级别提供资源隔离,同时数据可以在集群中共享以便于协作和 协调。
下图中Property即为租户,每个租户下可以有多个Namespace,每个Namespace下有多个Topic。
Namespace是Pulsar中的操作单元,包括Topic是配置在Namespace级别的,包括多地域复制,消息过期策略等都是配置在Namespace上的。
最后,Pulsar灵活的消息传递框架统一了流式和排队数据消费模型,并提供了更大的灵活性。 如下图所示,Pulsar保存主题中的数据,而多个团队可以根据其工作负载和数据消耗模式独立使用数据。
Pulsar提供了灵活的消息模型,支持三种订阅类型: - Exclusive subscription:排他的,只能有一个Consumer,接收一个Topic所有的消息
- Shared subscription:共享的,可以同时存在多个Consumer,每个Consumer处理Topic中一部消息(Shared模型是不保证消息顺序的,Consumer数量可以超过分区的数量)
- Failover subscription:Failover模式,同一时刻只有一个有效的Consumer,其余的Consumer作为备用节点,在Master Consumer不可用后进行替代(看起来适用于数据量小,且解决单点故障的场景)
|