Cloud Foundry的服务到服务通信

我需要将两个节点服务部署到CF(每个服务在它自己的容器中)。 这些应用程序需要沟通。 如何build议实施这种沟通? 我无法find解释CF中的服务到服务通信的任何指南,因为它应该部署到云中,所以我需要一些最佳实践。 一些例子会非常有帮助。

你的答案将取决于你的应用程序之间你想要什么样的沟通。

如果您希望为您的Node服务部署基于微服务的体系结构模式,即执行独立的细粒度业务function的服务器代码,那么我build议您从这里阅读文档并使用新的Bluemix开发人员控制台 。

这里有越来越多的模式和初学者可以用来理解和开发云本地应用程序,这些应用程序可以通过暴露与Open API规范兼容的API端点并为您的全渠道客户端应用程序自动生成SDK来相互通信。

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

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

这是一个解决任何企业应用程序集成模式的经典问题,它归结为什么types的集成需求。

如果一个应用程序想要同步通信来获得实时响应,那么RESTFul API是这个时代最受欢迎的集成风格。 但是还需要考虑的是,创build大量的API(这是基于微服务的架构的不利之处)也带来了维护集合和定位正确集合的巨大开销。 API网关和服务发现工具应该在这里帮助。 我是Blue-mix的新手,但您肯定可以在其上安装基于Spring-Cloud-EurekaConsul的服务发现服务,同样Spring Cloud Zuul也拥有API Gateway。

另外一个简单的方法就是确保不要为了满足整个微服务世界而构build一个中心服务,而是要有许多这样的服务来满足上下文绑定的微服务。

在类似的方面,如果需要进行asynchronous通信 ,像RabbitMQ,Kakfa这样的消息代理应该是应用程序通信的最佳和最简单的集成方式。 同样的问题不是build立一个SPOF服务,而是为了一系列有限的微服务而分别使用一个服务实例,这里也适用这些实例,所有这些实例都要进一步联合以便进行更广泛的交stream。