Cloud Foundry 中的应用到应用通信

App to App communication in Cloud Foundry

假设您要部署 2 个应用程序,其中一个应用程序向第二个应用程序提供一些 API。

对于服务,我只需将服务(或在我的清单中将其声明为依赖项)绑定到我的应用程序,从而获取有关传递到我的应用程序的主机、端口和凭据的信息(例如,通过 [= 中的 env 变量) 20=]).申请到application有没有类似的机制"communication"?

到目前为止,我的方法是使用 RabbitMQ 服务(或任何消息 broker/queue),两个应用程序都绑定到该服务,然后我将其用于跨应用程序通信。

谢谢!

像您一样使用消息代理绝对是一个可行的解决方案。这允许异步通信。然而,您必须自己处理身份验证,而不是应用程序 <-> 服务通信,其中 authentication/authorization 是通过 cloudfoundry 服务绑定建立的。

另一种方法是为此使用服务注册表。两个应用程序都将在服​​务注册表中注册并能够相互发现。

您可以尝试 spring 云服务注册表 (Eureka) 或 consul。至于您的消息代理解决方案,这不会像 cloudfoundry 服务绑定那样为您的应用程序生成凭据。

从您的用例来看,对于微服务到微服务的发现,您需要 Spring 云服务和 Eureka。

我对 nodejs 的经验不多。但是一些谷歌搜索,会给你一些文章。这可能对您有所帮助 - https://www.npmjs.com/package/eureka-js-client

这篇文章将从 Java 和 Spring 的角度给你一个概述 - https://spring.io/guides/gs/service-registration-and-discovery/.