gpt4 book ai didi

java - 微服务通信

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:59 24 4
gpt4 key购买 nike

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

首先,我探索了 REST 风格的服务,但如果每个服务都基于 HTTP REST,它们究竟如何相互“交谈”?

然后我尝试学习Spring Integration,但后来更不清楚它们应该如何通信,因为现在我想到也许我需要使用RabbitMQ作为前端和微服务后端之间的中间件。

我也遇到了云和 Docker 技术,所以我想每个服务都应该在云上,但仍然不清楚服务如何通信。

我正在使用 Java、Spring 技术。

如果有人能给我一个更好的画面,我会很高兴。

最佳答案

您走对了路。使用 REST 架构公开服务功能强大且简单。每个微服务都公开了一些可以被其他微服务调用的功能。您可以使用 SpingMVC 和注释 @RestController 来做到这一点。要调用 REST API,您可以使用 Spring 类 RestTemplate。

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

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

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

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

关于java - 微服务通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40377377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com