當前位置:
首頁 > 科技 > 如何使用Spring Boot構建微服務

如何使用Spring Boot構建微服務

在本文中,我們將討論微服務的優缺點,以便您可以做出更好的決定。在此之後,我們將通過一個例子來了解微服務架構。

硬體的進步幅度已經趕上了應用程序變複雜的腳步。然而卻沒有趕上互聯網流量變化的腳步。 因此需要改變架構和web介面,我們有許多技術來解決這個問題,現在後端單體程序幾乎不存在。

我們將在這裡討論微服務的優缺點。

優點:
  • 您可以使用各種語言的最新技術棧。

  • 可以使用應用隔板(Bulkhead),這樣如果一個系統失效,其他系統還能有效服務。

  • 動態可擴展

  • 組合而成的應用程序, 發布周期不會很長。

  • 應用程序將是一組獨立的系統,部署過程將更加平滑。

  • 有助於有效利用人力和技術資源。

缺點:

  • 這對於小型應用來說非初始成本非常高。

  • 集成和測試工作可能會增加。

  • 有時開發者會抱怨重複的工作。

  • 增加服務API可能非常複雜。 內存消耗可能很高

引用Martin Fowler的話:


我們聽到的一個合理的論點是,你不應該從微服務架構開始。取而代之的是單體應用,保持它的模塊化,一旦單體應用出現問題,就將它分割成微服務

如果你已經開始使用微服務,那麼它的優勢就很明顯了。如果應用程序變得龐大而複雜,那麼隨著應用程序逐漸模塊化,然後轉向微服務。因為微服務在技術,工作量和架構設計水平方面非常的要求很高。

我們將創建一個項目來演示。 微服務是一種架構風格,其實現由許多框架支持,即。Dropwizard,Vertx,Spring Boot,Restlet,Spark + Unirest(REST客戶端,Spark本身不提供REST客戶端)等。這裡我們將使用Spring引導。 這是微服務最流行的框架,因為我們知道它由Spring提供支持。

在這個項目中,我們將使用Eureka伺服器,它僅僅是一個服務註冊中心實現。 在這種情況下,每個微服務都被註冊,客戶端通過查找Eureka伺服器來查找相關的微服務。 我們試圖模仿這裡的真實世界場景,其中Eureka伺服器和不同的微服務分別部署。

初始化Eureka服務

對於我們的演示目的,我們僅僅使用Eureka作為我們的服務註冊伺服器。 為此,您只需使用正確的依賴關係並在應用程序yaml或屬性文件中指定Eureka屬性。

Eureka POM

如何使用Spring Boot構建微服務

如何使用Spring Boot構建微服務

application.yaml

以下是將您的應用程序主要配置

如何使用Spring Boot構建微服務

一旦我們啟動應用程序,Eureka伺服器將顯示所有已註冊和可用服務的詳細信息。

如何使用Spring Boot構建微服務

目前沒有任何已註冊的服務,因此您會看到警告。

微服務客戶端

我們將定義兩個簡單的項目:員工服務和僱主服務。 這兩個服務將向Eureka伺服器註冊。 這些項目的核心將是它的應用程序屬性,它們將定義它們將在伺服器上註冊的名稱和其他參數。

員工服務

如何使用Spring Boot構建微服務

僱主服務

如何使用Spring Boot構建微服務

一旦我們啟動了程序,他們就會在Eureka上註冊。

如何使用Spring Boot構建微服務

請注意,警告已消失。

使用已發布的微服務

客戶都註冊了不同的名稱。 這些名稱將用於在其他客戶端查找服務。 在我們的例子中,EMPLOYEE-SERVICE返回靜態數據。 此數據在EMPLOYER SERVICE中獲取並顯示。

員工服務

如何使用Spring Boot構建微服務

我們只有2個預定義的數據集,我們將僅從此集返回。

僱主服務

如何使用Spring Boot構建微服務

請注意僱主服務如何訪問員工服務。 它沒有使用任何主機或埠。 基於服務名稱,它設法找到並使用該服務。

輸出

如何使用Spring Boot構建微服務

結論

在這裡我們看到了基於Spring Boot的微服務最小功能實現。 這裡服務與伺服器配置和部署非常隔離。

您可以從GitHub Repository下載完整的代碼[1]

本文作者Rahul,由方圓翻譯。轉載譯文請註明出處,技術原創及架構實踐文章,歡迎通過公眾號菜單「聯繫我們」進行投稿。

文中鏈接:

[1] https://github.com/pavansolapure/opencodez-samples/tree/master/microservices

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高可用架構 的精彩文章:

容器應該是公有雲的一等公民——Hyper王旭訪談
Kubernetes健康檢查如何做?官方推薦教程

TAG:高可用架構 |