我需要将两个节点服务部署到CF(每个服务都在自己的容器中)。 应用需要沟通。如何建议实施此通信?我找不到任何解释CF中服务到服务通信的指南,因为它应该部署到云中,我需要一些最佳实践。一些例子非常有用。
答案 0 :(得分:2)
这是一个经典的问题,它总能解决任何企业应用程序集成模式,并且它可以归结为需要什么类型的集成。
如果某个应用想要进行同步通信以获得实时响应,那么RESTFul API是这个时代最受欢迎的集成风格。但是还需要考虑的是,创建大量的API(这是基于微服务的架构的缺点)也带来了维护集合和定位正确的开销的巨大开销。 API网关和服务发现工具应该对此有所帮助。我是关于Blue-mix的新手,但您可以在其上托管基于Spring-Cloud-Eureka
或Consul
的服务发现以实现此目的,同样Spring Cloud Zuul
拥有API网关。
另一个简单的方法是确保不要将一个中心服务构建为满足整个微服务世界的胖子,而是提供许多这样的服务,每个服务都适用于上下文绑定的微服务。
在类似的行上,如果需要异步通信,像RabbitMQ,Kakfa这样的消息代理应该是应用程序进行通信的最佳和最简单的集成方式。同样的问题是没有构建SPOF服务,而是为一组有界微服务各提供一个单独的服务实例,这里也适用于所有这些实例进一步联合以进行更广泛的通信。
答案 1 :(得分:1)
您的答案取决于您的应用之间的通信类型。
如果您正在寻找为您的Node服务部署microservice-based architecture模式,即执行独立,细化业务功能的服务器代码,我建议您开始阅读docs here并使用新的Bluemix Developer Console。
此外,您可以使用越来越多的模式和启动器来理解和开发云本机应用程序,这些应用程序可以通过公开符合Open API规范的API端点并为您的全渠道客户端应用程序自动生成SDK来相互通信
下载选定的启动器后,您可以修改代码以公开执行所需业务逻辑的API。随后,您可以在容器中本地运行项目,或使用bx dev
命令行工具将其部署到Bluemix。
设置完成后,您将在微服务和客户端应用程序之间进行跨平台,语言无关的通信。