龙空技术网

Apache Pulsar入门介绍

DiegoZuo 291

前言:

如今小伙伴们对“apache pulsar官网”可能比较注意,咱们都需要分析一些“apache pulsar官网”的相关内容。那么小编同时在网络上汇集了一些有关“apache pulsar官网””的相关文章,希望大家能喜欢,你们一起来了解一下吧!

Apache Pulsar 是灵活的发布-订阅消息系统(Flexible Pub/Sub messaging),采用分层分片架构

发布-订阅消息系统

关于发布-订阅模型的概念,主要从多租户、灵活的消息系统、云原生构架、分片的流(Segmented Streams)等方面来强调 Apache Pulsar 的功能和特性。

多租户

租户和命名空间(namespace)是 Pulsar 支持多租户的两个核心概念。

在租户级别,Pulsar 为特定的租户预留合适的存储空间、应用授权与认证机制。在命名空间级别,Pulsar 有一系列的配置策略(policy),包括存储配额、流控、消息过期策略和命名空间之间的隔离策略。灵活的消息系统

Pulsar 做了队列模型和流模型的统一,在 Topic 级别只需保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度。

云原生架构

Pulsar 使用计算与存储分离的云原生架构,数据从 Broker 搬离,存在共享存储内部。上层是无状态 Broker,复制消息分发和服务;下层是持久化的存储层 Bookie 集群。Pulsar 存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。

Segmented Streams

Pulsar 将无界的数据看作是分片的流,分片分散存储在分层存储(tiered storage)、BookKeeper 集群和 Broker 节点上,而对外提供一个统一的、无界数据的视图。其次,不需要用户显式迁移数据,减少存储成本并保持近似无限的存储。

跨地域复制

Pulsar 中的跨地域复制是将 Pulsar 中持久化的消息在多个集群间备份。在 Pulsar 2.4.0 中新增了复制订阅模式(Replicated-subscriptions),在某个集群失效情况下,该功能可以在其他集群恢复消费者的消费状态,从而达到热备模式下消息服务的高可用。

层级存储

层级存储的优势:

Infinite Stream: 以流的方式永久保存原始数据分区的容量不再受限充分利⽤云存储或现有的廉价存储 ( 例如 HDFS)数据统⼀表征:客户端无需关⼼数据究竟存储在哪⾥Pulsar FunctionsPulsar Functions 是一个轻量级的计算框架,可以给用户提供一个部署简单、运维简单、API 简单的 FASS(Function as a service)平台。Pulsar Functions 提供基于事件的服务,支持有状态与无状态的多语言计算,是对复杂的大数据处理框架的有力补充。

Pulsar IOPulsar IO 分为输入(Input)和输出(Output)两个模块,输入代表数据从哪里来,通过 Source 实现数据输入。输出代表数据要往哪里去,通过 Sink 实现数据输出。Pulsar 与大数据处理框架的集成

>>> Spark

自 Spark 2.2 版本 Structured Streaming 正式发布,Spark 只保留了 SparkSession 作为主程序入口,你只需编写 DataSet/DataFrame API 程序,以声明形式对数据的操作,而将具体的查询优化与批流处理执行的细节交由 Spark SQL 引擎进行处理。

对于一个数据处理作业,需要定义 DataFrame 的产生、变换和写出三个部分,而将 Pulsar 作为流数据平台与 Spark 进行集成正是要解决如何从 Pulsar 中读取数据(Source)和如何向 Pulsar 写出运算结果(Sink)两个问题。

>>> Flink

Pulsar 能以不同的方式与 Apache Flink 融合,一些可行的融合包括,使用流式连接器(Streaming Connectors)支持流式工作负载,或使用批式源连接器(Batch Source Connectors)支持批式工作负载。

Pulsar 还提供了对 Schema 的原生支持,可以与 Flink 集成并提供对数据的结构化访问,例如,使用 Flink SQL 在 Pulsar 中查询数据。另外,还能将 Pulsar 作为 Flink 的状态后端。由于 Pulsar 具有分层架构(Apache BookKeeper 支持下的 Streams 和 Segmented Streams),因此可以将 Pulsar 作为存储层并存储 Flink 状态。

>>> Presto

Pulsar 使用 Pulsar SQL 查询历史消息,使用 Presto 引擎高效查询 BookKeeper 中的数据。Presto 是用于大数据解决方案的高性能分布式 SQL 查询引擎,可以在单个查询中查询多个数据源的数据。如下是使用 Pulsar SQL 查询的示例。

批处理是对有界的数据进行处理,通常数据以文件的形式存储在 HDFS 等分布式文件系统中。流处理将数据看作是源源不断的流,流处理系统以发布/订阅方式消费流数据。当前的大数据处理框架,例如 Spark、Flink 在 API 层和执行层正在逐步融合批、流作业的提交与执行,而 Pulsar 由于可以存储无限的流数据,是极佳的统一数据存储平台。

>>> Pulsar Manager

此前,Pulsar 已有监控工具 Dashboard ,但它侧重于对 Pulsar 的简单监控(如搜集并展示 Tenants、Namespaces、Topics 和 Subscriptions 等监控信息),无法进行高阶管理(如对 Tenant、Namespace 和 Topic 等进行增加、删除、更新等操作),尤其是集群数量较多时,仅通过命令行工具 pulsar-admin 进行管理,效果却不尽人意,而 Apache Pulsar Manager 正是对这一空白的补充。

Apache Pulsar Manager 是一个基于网页的 GUI 管理和监控工具,帮助 Pulsar 管理员和用户管理和监控 Tenant、Namespace、Topic、Subscription、Broker 和 Cluster 等,并支持动态配置多种环境。

>>> Kafka on Pulsar (KoP)

KoP 是 StreamNative 的一大创新和尝试。StreamNative 通过 KoP 帮助用户不受应用迁移和重写所困扰,高效便捷地帮助用户解决了痛点问题,并开创性地连接了 Pulsar 和 Kafka 两大开源社区。

>>> Pulsar-io-Kafka

对于实时数据处理中 Kafka 数据的导入,使用 StreamNative 开源的 pulsar-io-kafka 项目,可以把 Kakfa 中的数据读出并写入到 Pulsar 中。

标签: #apache pulsar官网