Spring 数据流和 GCP Pub Sub

Posted

技术标签:

【中文标题】Spring 数据流和 GCP Pub Sub【英文标题】:Spring dataflow and GCP Pub Sub 【发布时间】:2019-07-03 04:27:19 【问题描述】:

我正在构建一个事件驱动的微服务架构,它应该与云无关(尽可能)。因为这最初是在 GCP 中进行的,我不想花很长时间配置和所有这些,我打算直接将 GCP 的 Pub/Sub 用于事件队列,稍后会处理其他云实现,但后来我遇到了 Spring Cloud Dataflow,这看起来不错,因为这些是 Spring Boot 微服务,我需要一种编排它们的方法。

Spring Cloud Dataflow 是否支持 Pub Sub 作为事件队列? 在配置和设置方面是否会比选择非本地代理更轻松?

【问题讨论】:

【参考方案1】:

首先解压 Spring Cloud Stream 的“binder 抽象”会很有用,因为它正在使用这个框架,您将拥有一个可移植的事件驱动流应用程序,它可以在您的笔记本电脑或您的任何云中本地运行根据所需的消息代理进行选择。

了解有关活页夹抽象here 的更多信息。以下是所有可用的binder implementations 选择。 Google PubSub 是一个选项,由 Google here 维护。

现在,我们来谈谈 Spring Cloud Data Flow (SCDF)。一旦您构建了流应用程序,您就可以使用 SCDF 来设计和创建由此类应用程序组成的数据管道。可以选择混合和重用我们构建、维护和发布的collection of utility applications。实用程序应用程序可以与 Google PubSub 或其他活页夹一起打包。更多详情here.

当您部署数据管道时,SCDF 将解析并下载各个应用程序,以便在 Kubernetes 或 Cloud Foundry 等平台上本机部署它们。我们有用户在各种云基础设施(VM、裸机、EC2、Rackspace 等)中做同样的事情,包括 DIY 平台。

在自动部署应用程序的同时,SCDF 将根据源自流/任务和应用程序名称组合的命名约定自动执行配置设置。因此,当应用程序启动时,它们将自动接收连接配置(来自 SCDF)以及要连接的目标/主题以及其他元数据,以将应用程序集合作为“流”或“任务”进行推理/batch”数据管道。这使您可以集中监控和管理管道。

最后,SCDF 具有滚动升级/滚动降级 1 或数据管道中的许多应用程序的本机能力,而不会影响生产中的上游或下游消费者。更多详情here。有一个 webinar recording(演示从 ~41.25 开始)关于如何使用 CI/CD 自动化。

【讨论】:

要在 GCP 上使用 SCDF,您必须使用 K8s 或 Cloud Foundry 特定的 SCDF 实现。更多详细信息可以在reference guide 上找到。当您这样做时,要全局提供 Google PubSub 连接凭据,以便所有应用程序在启动时都能收到它,您可以通过 "Common Application Properties" 来完成。

以上是关于Spring 数据流和 GCP Pub Sub的主要内容,如果未能解决你的问题,请参考以下文章

验证数据已发送到 GCP Pub/Sub

将带有 JMS (ActiveMQ) 的 Spring Boot 应用程序迁移到 GCP 的 pub-sub

GCP 数据流:从 Pub/Sub IO 流式传输的系统滞后

如何将 blob 文件发布到 GCP Pub/Sub?

使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP

GCP Pub/Sub 无法确认消息