Spring Boot 微服务如何知道如何将 POST 发送到另一个服务?
How does the one Spring Boot microservice know how it can send a POST to another service?
在本教程 (Spring Cloud Microservices) 中,此存储库中的代码用于说明示例:
https://github.com/saturnism/spring-cloud-gcp-guestbook/tree/master/1-bootstrap
在 repo 中,使用 Spring Boot 找到了两个 Maven 项目(guestbook-frontend 和 guestbook-service)。两者都是 运行 作为服务。通过前端服务,可以将消息发布到后端服务。我的问题是,它在哪里配置,以便前端知道 POST 的去向?两者有何联系?
检查
中的@FeignClient注解
https://github.com/saturnism/spring-cloud-gcp-guestbook/blob/master/1-bootstrap/guestbook-frontend/src/main/java/com/example/frontend/GuestbookMessagesClient.java
为了详细解释这个问题,我将重点介绍微服务的核心模式
- 核心开发模式
- 路由模式
- 客户端弹性模式
- 安全模式
- 记录和跟踪模式
- 构建和部署模式
上面提到的模式用于处理当我们转向微服务时出现的问题。您的问题突出显示的问题之一是“我们永远无法确定哪台机器将成为我们的微服务 运行” 解决此问题的一种天真的方法是我们维护某种包含机器所有详细信息的地图及其服务。为了在服务之间建立通信,我们可以使用该地图。但这种做法很幼稚,也有其自身的问题。
所以要处理这个问题,我们将不得不使用路由模式。在路由模式中有一个概念服务发现 不同的平台提供了不同的服务发现方法。比如:Netflix提供Eureka和Feign Client,后来在Spring Cloud中加入,HashiCorp用Consul提供Service Discovery,AWS ECS也有自己的服务发现机制。
话虽如此,我可以得出结论,您可以通过不同的方式从 spring-boot 的一个微服务调用另一个服务。但是由于您更关心 spring 云,在 spring 云中您将需要 Eureka Server 和 Feign Client。将它们添加到您的项目中非常简单。
您可以按照本教程使用Eureka和Feign Clienthttps://dzone.com/articles/microservices-communication-feign-as-rest-client
在本教程 (Spring Cloud Microservices) 中,此存储库中的代码用于说明示例:
https://github.com/saturnism/spring-cloud-gcp-guestbook/tree/master/1-bootstrap
在 repo 中,使用 Spring Boot 找到了两个 Maven 项目(guestbook-frontend 和 guestbook-service)。两者都是 运行 作为服务。通过前端服务,可以将消息发布到后端服务。我的问题是,它在哪里配置,以便前端知道 POST 的去向?两者有何联系?
检查
中的@FeignClient注解https://github.com/saturnism/spring-cloud-gcp-guestbook/blob/master/1-bootstrap/guestbook-frontend/src/main/java/com/example/frontend/GuestbookMessagesClient.java
为了详细解释这个问题,我将重点介绍微服务的核心模式
- 核心开发模式
- 路由模式
- 客户端弹性模式
- 安全模式
- 记录和跟踪模式
- 构建和部署模式
上面提到的模式用于处理当我们转向微服务时出现的问题。您的问题突出显示的问题之一是“我们永远无法确定哪台机器将成为我们的微服务 运行” 解决此问题的一种天真的方法是我们维护某种包含机器所有详细信息的地图及其服务。为了在服务之间建立通信,我们可以使用该地图。但这种做法很幼稚,也有其自身的问题。
所以要处理这个问题,我们将不得不使用路由模式。在路由模式中有一个概念服务发现 不同的平台提供了不同的服务发现方法。比如:Netflix提供Eureka和Feign Client,后来在Spring Cloud中加入,HashiCorp用Consul提供Service Discovery,AWS ECS也有自己的服务发现机制。
话虽如此,我可以得出结论,您可以通过不同的方式从 spring-boot 的一个微服务调用另一个服务。但是由于您更关心 spring 云,在 spring 云中您将需要 Eureka Server 和 Feign Client。将它们添加到您的项目中非常简单。
您可以按照本教程使用Eureka和Feign Clienthttps://dzone.com/articles/microservices-communication-feign-as-rest-client