如何使用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以下是將您的應用程序主要配置
一旦我們啟動應用程序,Eureka伺服器將顯示所有已註冊和可用服務的詳細信息。
目前沒有任何已註冊的服務,因此您會看到警告。
微服務客戶端
我們將定義兩個簡單的項目:員工服務和僱主服務。 這兩個服務將向Eureka伺服器註冊。 這些項目的核心將是它的應用程序屬性,它們將定義它們將在伺服器上註冊的名稱和其他參數。
員工服務
僱主服務
一旦我們啟動了程序,他們就會在Eureka上註冊。
請注意,警告已消失。
使用已發布的微服務
客戶都註冊了不同的名稱。 這些名稱將用於在其他客戶端查找服務。 在我們的例子中,EMPLOYEE-SERVICE返回靜態數據。 此數據在EMPLOYER SERVICE中獲取並顯示。
員工服務
我們只有2個預定義的數據集,我們將僅從此集返回。
僱主服務
請注意僱主服務如何訪問員工服務。 它沒有使用任何主機或埠。 基於服務名稱,它設法找到並使用該服務。
輸出
結論
在這裡我們看到了基於Spring Boot的微服務最小功能實現。 這裡服務與伺服器配置和部署非常隔離。
您可以從GitHub Repository下載完整的代碼[1]
本文作者Rahul,由方圓翻譯。轉載譯文請註明出處,技術原創及架構實踐文章,歡迎通過公眾號菜單「聯繫我們」進行投稿。
文中鏈接:
[1] https://github.com/pavansolapure/opencodez-samples/tree/master/microservices


※容器應該是公有雲的一等公民——Hyper王旭訪談
※Kubernetes健康檢查如何做?官方推薦教程
TAG:高可用架構 |