Cloud Foundry 的服务到服务通信

Service-to-service communication for Cloud Foundry

我需要将两个节点服务部署到 CF(每个服务都在其自己的容器中)。 应用程序需要进行通信。建议如何实施此通信?我找不到任何解释 CF 中服务到服务通信的指南,并且由于它应该部署到云中,我需要一些最佳实践。一些例子会很有帮助。

您的答案将取决于您希望应用之间进行何种通信。

如果您要部署 microservice-based architecture pattern for your Node services, i.e. server code that performs an independent, granular business function, I would recommend getting started reading the docs here and using the new Bluemix Developer Console

这里有越来越多的模式和启动器,您可以使用它们来理解和开发云原生应用程序,这些应用程序可以通过公开符合 Open API 规范的 API 端点来相互通信并为您的全渠道客户端应用程序自动生成 SDK。

下载选定的启动程序后,您可以修改代码以公开执行所需业务逻辑的 API。随后,您可以 运行 您的项目在本地容器中或使用 bx dev 命令行工具将其部署到 Bluemix。

设置之后,您将在微服务和客户端应用程序之间进行跨平台、独立于语言的通信。

这是解决任何企业应用程序集成模式的经典问题,归根结底,需要什么样的集成。

如果一个应用想要同步通信来获得实时响应,RESTFulAPI是这个时代最喜欢的集成方式.但还需要考虑的是,创建大量 API s(这是使用基于微服务的架构的缺点)也会带来维护集合和定位正确集合的巨大开销。 API 网关和服务发现工具应该在这里有所帮助。我是 Blue-mix 的新手,但您肯定可以在其上托管一个基于 Spring-Cloud-EurekaConsul 的服务发现来达到目的,同样地 Spring Cloud Zuul 有一个 API网关。

这里的另一个简单问题是确保不要将一个中央服务构建为 fat spof 来迎合整个微服务世界,而是要有许多这样的服务,每个服务都迎合上下文绑定的微服务。

同理,如果需要异步通信,RabbitMQ、Kakfa 等消息代理应该是应用程序通信的最佳和最简单的集成方式。不构建 SPOF 服务而是为一组有界微服务创建单独的服务实例的相同问题也适用于此,应注意所有这些实例进一步联合以进行更广泛的通信。