歡迎光臨
每天分享高質量文章

如何使用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


application.yaml

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

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

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

微服務客戶端

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

員工服務

僱主服務

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

請註意,警告已消失。

使用已釋出的微服務


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

員工服務

我們只有2個預定義的資料集,我們將僅從此集傳回。

僱主服務

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

輸出


結論


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

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


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


文中連結:


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

相關閱讀:


微博開源的Motan RPC最新進展:新增跨語言及服務治理支援

是的,為了更好的支援微服務,我們從PHP遷移到了Go

模組化還是微服務 – 為什麼說大部分團隊微服務化都走入了陷阱

Java 微服務框架新選擇:Spring 5

從單體應用走向微服務:一次API Gateway升級的啟示

活動預告:


6 月 1 ~ 2 日,GIAC 全球網際網路架構大會將於深圳舉行。GIAC 是高可用架構技術社群推出的面向架構師、技術負責人及高階技術從業人員的技術架構大會。今年的 GIAC 已經有騰訊、阿裡巴巴、百度、今日頭條、科大訊飛、新浪微博、小米、美圖、Oracle、鏈家、唯品會、京東、餓了麼、美團點評、羅輯思維、ofo、曠視LinkedInPivotal等公司專家出席。

本期 GIAC 大會上,部分精彩的議題如下:

參加 GIAC,盤點2018最新技術。點選“閱讀原文”瞭解大會更多詳情

贊(0)

分享創造快樂