sharetwitterlinkedIn

Google Cloud Pub/Sub Connector for Apache Pulsar 宣布开源

July 08, 2022
head img

近日,Apache Pulsar 开源商业化团队 StreamNative 宣布开源适用于 Apache Pulsar 的 Google Cloud Pub/Sub Connector,实现了 Google Cloud Pub/Sub 和 Apache Pulsar 之间的无缝集成,提高了 Apache Pulsar 生态系统的多样性。

关于 Google Cloud Pub/Sub Connector

Google Cloud Pub/Sub Connector 是一个 Pulsar IO Connector,可在 Google Cloud Pub/Sub 和 Apache Pulsar 之间实现数据复制。Google Cloud Pub/Sub Connector 提供两种方式在系统之间导入和导出数据:Source 和 Sink。

Source

The Google Cloud Pub/Sub source 从 Google Cloud Pub/Sub 获取数据并将数据写入 Apache Pulsar 主题。

图 1. Google Cloud Pub/Sub Source

Sink

Google Cloud Pub/Sub Sink 从 Apache Pulsar 主题中提取数据并将数据持久化到 Google Cloud Pub/Sub。

图 2. Google Cloud Pub/Sub Sink

背景

Apache Pulsar 和 Google Cloud Pub/Sub 是云环境中最受欢迎和广泛使用的两个消息平台。Apache Pulsar 作为统一的消息流平台,同时支持流和队列这两种语义,用户可以基于同一底层系统打通各种数据和应用程序、数据查询、数据分析以及流系统等。Google Cloud Pub/Sub 则具有高可靠性和可扩缩性,以及强大的流分析周边生态,能按顺序大规模传递消息。

然而,目前缺少简单可靠的方式让用户在一个 Pub/Sub 云系统中使用功能齐全的消息流平台。因此,StreamNative 投入大量开发工作来弥补这一差距。

该 StreamNative Connector 允许 Google Cloud Pub/Sub 用户将消息流连接到 Pulsar 并可以使用 Google Cloud Pub/Sub 不可用的功能,同时避免了当系统或隐私要求存在内在差异1时可能出现的连接问题。Connector 通过与 Pulsar 系统的其余部分(包括无服务器函数、单条消息处理和事件流处理功能)完全集成来解决连接问题。它提供了一种低代码解决方案,开箱即用,例如多租户连接、跨地域复制、直连到终端用户移动客户端或 IoT 客户端的协议等。这些功能对于双向事件流的传递至关重要。

为何使用 Google Cloud Pub/Sub Connector

Google Cloud Pub/Sub 和 Apache Pulsar 的集成有 3 大优势:

  • 简单:你可以在 Apache Pulsar 和 Google Cloud Pub/Sub 之间快速迁移数据,而无需编写任何代码。
  • 高效:你可以减少花费在数据层的时间,有效地从实时数据中挖掘业务价值。
  • 可扩展:你可以在任何节点(独立或分布式)上运行 Connector,从而构建响应式数据管道来实时满足业务和运营需求。

使用 Google Cloud Pub/Sub Connector

启动运行 Connector 只需要 3 个简单的步骤:

  • 配置服务并下载 Connector
  • 配置 Source Connector
  • 配置 Sink Connector

准备工作

首先,你必须运行 Apache Pulsar 集群和 Google Cloud Pub/Sub 服务。

  1. 运行 Pulsar 服务。你可以通过 $PULSAR_HOME/bin/pulsar standalone 快速运行 Pulsar 集群。详细信息请参阅 Pulsar 入门文档;你也可以使用 StreamNative Cloud 在公有云中提供易于使用且完全托管的 Pulsar 服务。
  2. 运行 Google Cloud Pub/Sub 服务。详细信息请参阅 Google Cloud Pub/Sub 入门文档。请注意,你需要安装 gcloud CLI,并设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量访问 Google Cloud。
  3. 设置 Google Cloud Pub/Sub Connector下载 Connector,然后将其移动到 $PULSAR_HOME/connectors

Apache Pulsar 提供 Pulsar IO 特性来运行 Connector。请按照以下步骤快速启动并运行 Connector。

配置 Source Connector

  1. 创建一个名为 google-pubsub-source-config.json 的配置文件,将 pulsar-io-google-pubsub/test-google-pubsub-source 主题消息从 Google Cloud Pub/Sub 发送到 Apache Pulsar 的 public/default/test-google-pubsub-source 主题:

    {
        "tenant": "public",
        "namespace": "default",
        "name": "google-pubsub-source",
        "topicName": "test-google-pubsub-source",
        "archive": "connectors/pulsar-io-google-pubsub-$VERSION.nar",
        "parallelism": 1,
        "configs":
        {
        "pubsubProjectId": "pulsar-io-google-pubsub",
        "pubsubTopicId": "test-google-pubsub-source"
        }
    }
    
  2. 运行 Source Connector:

    $PULSAR_HOME/bin/pulsar-admin sources localrun --source-config-file /path/to/google-pubsub-source-config.json
    

配置 Sink Connector

  1. 创建一个名为 google-pubsub-sink-config.json 的配置文件,将 public/default/test-google-pubsub-sink 主题消息从 Apache Pulsar 发送到 Google Cloud Pub/Sub 的 pulsar-io-google-pubsub/test-google-pubsub-sink 主题:

    {
        "tenant": "public",
        "namespace": "default",
        "name": "google-pubsub-sink",
        "inputs": [
        "test-google-pubsub-sink"
        ],
        "archive": "connectors/pulsar-io-google-pubsub-$VERSION.nar",
        "parallelism": 1,
        "configs": {
        "pubsubProjectId": "pulsar-io-google-pubsub",
        "pubsubTopicId": "test-google-pubsub-sink"
    }
    }
    
  2. 运行 Sink Connector:

    $PULSAR_HOME/bin/pulsar-admin sinks localrun --sink-config-file /path/to/google-pubsub-sink-config.json
    

当你向 Apache Pulsar 的 public/default/test-google-pubsub-sink 主题发送消息时,该消息将持久保存到 Google Cloud Pub/Sub 的 pulsar-io-google-pubsub/test-google-pubsub-sink 主题。有关详细信息,可参考此演示视频。

如何参与

Google Cloud Pub/Sub Connector 是将其他消息系统集成到 Pulsar 周边生态中的重要一步。你可以通过以下任一方式参与该项目:

  • 试用 Google Cloud Pub/Sub Connector下载 Connector 并参阅 ReadMe 文件
  • 联系我们:如有任何问题,你都可以创建 Issue、发送邮件至 Pulsar 邮件列表、或加入 Pulsar 微信群进行讨论。无论哪种方式,StreamNative 资深 Pulsar 专家将及时解答。
  • 参与贡献:源码开放并托管在 StreamNative GitHub 代码仓库。如需改进功能或修复 bug,欢迎提交 PR

1无 Schema 概念的平台与具有复杂 Schema 功能的平台之间存在内在差异,因为没有简单的方法在它们之间进行转换。从传统的消息系统(如 Amazon SQS)到写入数据湖的多级分层 Avro 架构,这些平台都存在差异。依赖于不同数据形式的平台之间也存在差异,例如 Pandas DataFrames 和简单的消息。

© 北京原流科技有限公司Apache、Apache Pulsar、Apache BookKeeper、Apache Flink 及相关开源项目名称均为 Apache 软件基金会商标。条款隐私