簡體   English   中英

一個 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

為了詳細解釋這個問題,我將重點介紹微服務的核心模式

  1. 核心開發模式
  2. 路由模式
  3. 客戶端彈性模式
  4. 安全模式
  5. 記錄和跟蹤模式
  6. 構建和部署模式

上面提到的模式用於處理我們轉向微服務時出現的問題。 您的問題突出顯示的問題之一是“我們永遠無法確定哪台機器將運行我們的微服務”解決此問題的一種天真的方法是我們維護某種包含機器及其服務所有細節的地圖。 為了在服務之間建立通信,我們可以使用該映射。 但這種方法很幼稚,而且有其自身的問題。

所以為了解決這個問題,我們將不得不使用路由模式。 在路由模式中有一個服務發現的概念 不同平台提供了不同的服務發現方法。 例如:Netflix 提供了 Eureka 和 Feign Client,后來加入 Spring Cloud,HashiCorp 通過 Consul 提供服務發現,AWS ECS 也有服務發現機制。

話雖如此,我可以得出結論,您可以通過不同的方式從 spring-boot 的一個微服務調用另一個服務。 但是由於您更關心 spring cloud,因此在 spring Cloud 中,您將需要Eureka Server 和 Feign Client 將它們添加到您的項目中非常簡單。

您可以按照本教程使用 Eureka 和 Feign Client https://dzone.com/articles/microservices-communication-feign-as-rest-client

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM