使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP
Posted
技术标签:
【中文标题】使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP【英文标题】:Integrate legacy On-Prem .Net application to GCP using Tibco and GCP Pub/Sub 【发布时间】:2021-05-10 15:58:40 【问题描述】:我们正在将部署在虚拟机本地数据中心上的 .Net 应用程序与云端 Google 云平台中的发布/订阅资源主题集成在一起。我有一个我目前无法决定的情况,需要帮助和正确的方向。下面是用例的简要细节。请查看并提供您的想法。
目前有一个 .Net 应用程序部署在传统本地客户端数据中心的 Windows VM 上。它的作用是将 XML 消息发布到部署在本地相同数据中心的 EMS 服务器上的 Tibco EMS 主题。很少有部署在不同 VM 上的 Java 应用程序订阅此 Tibco 主题并拉取消息并处理它们。这是遗留流程。
作为现代化的一部分,GCP 正在加入其中。现在的场景是 On-Prem .Net 应用程序发布到 Tibco 主题的 XML 消息也应该被推送到 GCP 云上的发布/订阅资源主题。已部署在 GCP 基础设施上的 Java 微服务将订阅该主题并从中使用这些消息。
现在我面临的问题是如何在本地和云应用程序之间进行这种集成。我想了几个选项。
-
直接从旧版 Tibco 主题复制消息,.Net 应用程序将消息发布到 GCP 中的 Pub/sub 主题。我不是 Tibco 专家,不确定是否支持。我找到了以下链接,但不确定这是否适合我的用例。此外,客户希望离开 Tibco,但不确定数据中心上的旧 Tibco EMS 是否支持以下 Tibco 连接器功能。
https://www.tibco.com/connected/google-cloud-pub/sub
对 .Net 代码库进行更改,以便在将消息发布到 Tibco 主题的代码点中,我们可以添加额外的代码以将其直接发布到 GCP 中的 Pub/Sub 主题。不确定这是否可行,因为 .Net 应用程序位于旧版本地 VM 上,而 Pub/Sub 位于云端。在这里我也不熟悉.Net,但发现有.Net Google 客户端库可以添加到.Net 代码中来实现此流程。 Google Pub/Sub 是要使用的正确集成工具,还是必须使用其他工具才能将这两个系统连接起来。
到目前为止,我可以继续进行。你们能否让我知道上述两种方法是正确的还是存在问题,哪一种是正确的方法。此外,如果除了上述之外还有其他解决方案,它真的会帮助我继续前进。希望得到大家的积极回复和帮助。
谢谢,Vikeng21
【问题讨论】:
【参考方案1】:对于第一种情况,提到的连接器实际上是 TIBCO BusinessWorks 插件。因此,方法是使用 TIBCO BusinessWorks 构建一种 GCP 云消息传递/TIBCO EMS 网关。然后可以在本地或云端运行此解决方案(使用 TIBCO TCI 产品)。 这种方法的优点是它对您的应用程序是透明的,本地 .Net 应用程序和云应用程序将接收完全相同的消息。
【讨论】:
【参考方案2】:我认为 EmmanuelM 的回答涵盖了第一种情况,这可能是最简单、最透明的方法。
关于场景 #2。我认为这也是一种有效的方法,尽管它需要修改您的应用程序代码以将消息与 Tibco 一起发布到 Pub/Sub,但我也不是 Tibco 专家;但是对于 Pub/Sub,正如您所提到的,Pub/Sub 提供了 .NET client library,您可以在应用程序中使用它来轻松发布和使用 Pub/Sub 消息。我看到你提到过:
不确定这是否可行,因为 .Net 应用程序位于旧版本地 VM 上,而 Pub/Sub 位于云端
完全没问题; Cloud Pub/Sub 服务通过its API 使用,无论是在本地还是云端,您都可以使用 API。
关于这种方法的问题是,我不确定如何在 Tibco 和 Pub/Sub 之间保持一致性,我假设这就是为什么第一种方法会更容易和透明,因为这可能就是集成的原因插件负责。否则,可能需要一些自定义应用程序逻辑来确保消息成功发布到 Tibco 和 Pub/Sub。
话虽如此,我真的建议您联系contact with Google Cloud Sales,详细描述您的用例、业务需求并为您的迁移计划获得个性化帮助。
【讨论】:
以上是关于使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP的主要内容,如果未能解决你的问题,请参考以下文章
Java 应用程序找不到访问 GCP Pub/Sub 的凭据