微服务通信

Mos*_*rad 9 java rest spring spring-integration microservices

我是微服务的新手,我正在尝试将我的项目转变为基于微服务的项目.我的问题是弄清楚每个服务如何相互通信.

首先,我探讨了REST样式服务,但如果每个服务都基于HTTP REST,那么它们之间如何相互"交谈"呢?

然后我尝试学习Spring Integration,但后来变得更加清晰,他们应该如何沟通,因为现在我想到我可能需要使用RabbitMQ作为前端和微服务后端之间的中间件.

我也遇到了云和Docker技术,所以我猜每个服务都应该在云端,但它仍然没有说明服务如何通信.

我正在使用Java,Spring技术.

如果有人能让我更好地了解事情应该如何,我会很高兴.

Nan*_*ano 5

您走对了路。使用REST体系结构公开服务既强大又简单。每个微服务都公开了一些可由其他微服务调用的功能。您可以使用SpingMVC和注释@RestController来完成此操作。要调用REST API,您可以使用Spring类RestTemplate。

您可能还需要将请求重定向到正确服务的网关。我建议您尝试使用Netflix Cloud Stack:

  • Zuul。这是您的应用程序的入口。向它发出每个请求。它应该协调整个生态系统。
  • Eureka客户端-Eureka服务器。您的所有微服务都应以某种方式告知某人它们已经启动并正在运行并且可以接受请求。因此,您可以使用Eureka Server接受服务中的注册,并将微服务标记为客户端。
  • 带。另一个重要的事情是请求的负载平衡。使用功能区,您可以轻松做到这一点。

如果您使用的是Spring Boot,则可以通过一些注释快速设置此架构。

您可以在这里找到一个简单的示例:https : //cloud.spring.io/spring-cloud-netflix/