2016-2022 All Rights Reserved.平安財經網.復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉載自互聯(lián)網 版權歸原作者所有。
微服務雖然不是一個新穎的概念或實踐,但一直在重新定義軟件開發(fā)在很多方面。微服務有可能取代單片應用程序,并且更符合企業(yè)不斷變化的業(yè)務需求。典型的單片應用程序是一種獨立的軟件應用程序,其中所有組件部件彼此緊密互連。如果任何組件因任何原因受到影響,則整個應用程序都會受到影響。例如,一個組件的更改可能需要完整的系統(tǒng)回歸和完整的部署。單片應用程序被視為不靈活的系統(tǒng),企業(yè)花費大量資源來維護此類應用程序。另一方面,微服務被證明更加靈活和靈活。它們是小型,獨立且可重復使用的服務,可以進行修改和獨立部署。這使企業(yè)可以節(jié)省大量投資。雖然不能說微服務普遍使用,但已經有一些令人鼓舞的案例研究。
什么是微服務?
微服務是一種開發(fā)單一軟件應用程序的架構風格,它結合了小型獨立服務。我們的想法是能夠以隔離的方式工作或修改每個服務,這樣,與單片應用程序的情況不同,整個軟件應用程序不會因為更新而受到影響。每個服務都有自己的進程,并以輕量級機制進行通信 - 通常借助HTTP資源Web服務。
要理解微服務架構的特性,將其與單片軟件系統(tǒng)進行比較可能是相關的。下表提供了單片和微服務軟件系統(tǒng)之間的主要區(qū)別。
機制
單片
微服務
處理
將所有功能放在一個過程中。
將各個功能放入單獨的服務中。
縮放
在多個服務器中復制monolith。
在需要時,跨服務和重復分發(fā)服務。
為什么它會獲得人氣
開發(fā)和管理軟件應用程序的微服務方式更符合不斷變化的業(yè)務需求,這是企業(yè)逐漸采用它的最重要原因。在充滿挑戰(zhàn)和動態(tài)的業(yè)務場景中,企業(yè)需要快速響應不斷變化的需求,但單片軟件系統(tǒng)不允許他們這樣做。微服務更靈活,能夠適應不斷變化的情況。微服務受歡迎的主要原因包括:
微服務應用程序允許故障隔離。無論何時出現問題,服務的孤立,獨立性質都允許與主要軟件和評估分離。在修復故障時,軟件應用程序不受影響。
企業(yè)不需要長期承諾使用特定的技術堆棧,因為它們可以用滿足其需求的另一個替換它。
由于服務是孤立和獨立的,因此很容易獲得知識并開始工作。
什么是架構組件?
微服務架構的架構組件也可稱為其定義特征。該體系結構的主要組件如下所述。
簡單的請求處理架構
與使用高級系統(tǒng)執(zhí)行消息路由,編排和應用業(yè)務規(guī)則等任務的復雜系統(tǒng)(如企業(yè)服務總線(ESB))不同,微服務架構以簡單的方式處理請求:它接受請求,處理請求并生成響應。
權力下放和靈活性
微服務架構允許企業(yè)從任何地方添加獨立服務,無論用于開發(fā)這些服務的語言或程序如何。這允許軟件開發(fā)人員根據他們的需要選擇最合適的服務。
強大的問題管理
由于該體系結構可能包括幾個不斷相互影響的不同服務,因此總會出現問題。在這種情況下,有問題的服務可以與整個軟件系統(tǒng)隔離,并在軟件系統(tǒng)繼續(xù)平穩(wěn)運行時進行修復或替換。
這個怎么運作
微服務架構基于其原理工作,可以跨軟件應用程序應用,無論技術或平臺如何。微服務的工作方式如下所述:
構建它并運行它
它遵循亞馬遜的“構建并運行它”的理念。軟件應用程序已經構建,并且假設開發(fā)團隊即使在軟件交付后也要負責。這與軟件項目的情況不同,在軟件項目交付后,開發(fā)團隊被拆除,責任交給維護團隊。在這種情況下,開發(fā)團隊即使在交付軟件后也要承擔全部責任。
將軟件組件化為服務
雖然微服務架構可以像單片軟件系統(tǒng)那樣工作 - 調用庫 - 它提供了一個獨特的功能。庫是鏈接到程序的組件,該程序在內存函數調用的幫助下調用。但是微服務使用的服務是進程外組件,它們通過Web服務或遠程過程調用等元素與軟件進行通信。
它與SOA有什么不同?
面向服務的體系結構(SOA)是一種基于服務或RESTful Web服務的體系結構,它執(zhí)行各種功能 - 例如,顯示系統(tǒng)狀態(tài),創(chuàng)建用戶和更新用戶數據。SOA允許軟件開發(fā)人員構建,調用和公開服務,并協(xié)調服務以提供解決方案。就像在微服務中一樣,SOA中的服務都是獨立的,松散耦合的服務。雖然SOA和微服務架構在以服務形式組件化軟件應用程序時都有共同的原則,但它們并不相同。SOA和微服務架構之間的主要區(qū)別如下所述。(要了解有關SOA的更多信息,請閱讀BPM和SOA:他們如何推動業(yè)務發(fā)展。)
溝通機制
雖然SOA允許您在各種技術堆棧中開發(fā)服務并將其部署以開發(fā)軟件應用程序,但它還要求每個服務使用通用通信機制進行通信。但是,在微服務架構的情況下,沒有這樣的要求。服務可以獨立部署和運營。
溝通失敗的影響
在SOA中,企業(yè)服務總線用于跨所有部署的服務進行通信。在ESB發(fā)生故障的情況下,服務之間的通信可能會中斷。顯然,完全依賴于ESB。在微服務的情況下,每個服務可以不同地構建,并且在出現故障或錯誤的情況下,僅該特定服務受影響而不受其他服務的影響。
規(guī)模和范圍
微服務架構中的每項服務往往都明顯小于SOA架構中的服務。微服務是可獨立部署的服務,而SOA可以是整體應用程序或小型可部署服務的一部分。
微服務的一些例子
許多著名的組織已經離開了用于微服務架構的單片系統(tǒng),包括Netflix,eBay,亞馬遜,英國政府數字服務,Twitter,PayPal,Soundcloud,衛(wèi)報等等。
Netflix一直在SOA架構中使用微服務取得了巨大成功。它每天通過來自800多種不同設備的API接收超過10億個呼叫,然后再撥打5個后端服務。
eBay已經轉向微服務,其核心應用程序包括幾個較小的自治應用程序。每個小應用程序都為應用程序的不同業(yè)務領域執(zhí)行業(yè)務邏輯。
結論
很明顯,微服務非常受歡迎,因為它們更符合不斷變化的業(yè)務場景。但是,需要牢記的是,將多種多樣化的服務組合在一起以實現單一目標并非易事。企業(yè)仍然需要在系統(tǒng)中管理清晰,及時的溝通,這可能是一個挑戰(zhàn)。此外,管理團隊或具有管理如此眾多不同服務知識的人員可能是一項挑戰(zhàn)??紤]到所有因素,微服務架構似乎仍然比單片架構更好。
2016-2022 All Rights Reserved.平安財經網.復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉載自互聯(lián)網 版權歸原作者所有。