您的位置: 首頁 >游戲 >

微服務(wù)在現(xiàn)代軟件開發(fā)中的作用

2022-08-19 13:00:10 編輯:李貞維 來源:
導(dǎo)讀 微服務(wù)雖然不是一個(gè)新穎的概念或?qū)嵺`,但一直在重新定義軟件開發(fā)在很多方面。微服務(wù)有可能取代單片應(yīng)用程序,并且更符合企業(yè)不斷變化的業(yè)務(wù)...

微服務(wù)雖然不是一個(gè)新穎的概念或?qū)嵺`,但一直在重新定義軟件開發(fā)在很多方面。微服務(wù)有可能取代單片應(yīng)用程序,并且更符合企業(yè)不斷變化的業(yè)務(wù)需求。典型的單片應(yīng)用程序是一種獨(dú)立的軟件應(yīng)用程序,其中所有組件部件彼此緊密互連。如果任何組件因任何原因受到影響,則整個(gè)應(yīng)用程序都會受到影響。例如,一個(gè)組件的更改可能需要完整的系統(tǒng)回歸和完整的部署。單片應(yīng)用程序被視為不靈活的系統(tǒng),企業(yè)花費(fèi)大量資源來維護(hù)此類應(yīng)用程序。另一方面,微服務(wù)被證明更加靈活和靈活。它們是小型,獨(dú)立且可重復(fù)使用的服務(wù),可以進(jìn)行修改和獨(dú)立部署。這使企業(yè)可以節(jié)省大量投資。雖然不能說微服務(wù)普遍使用,但已經(jīng)有一些令人鼓舞的案例研究。

什么是微服務(wù)?

微服務(wù)是一種開發(fā)單一軟件應(yīng)用程序的架構(gòu)風(fēng)格,它結(jié)合了小型獨(dú)立服務(wù)。我們的想法是能夠以隔離的方式工作或修改每個(gè)服務(wù),這樣,與單片應(yīng)用程序的情況不同,整個(gè)軟件應(yīng)用程序不會因?yàn)楦露艿接绊?。每個(gè)服務(wù)都有自己的進(jìn)程,并以輕量級機(jī)制進(jìn)行通信 - 通常借助HTTP資源Web服務(wù)。

要理解微服務(wù)架構(gòu)的特性,將其與單片軟件系統(tǒng)進(jìn)行比較可能是相關(guān)的。下表提供了單片和微服務(wù)軟件系統(tǒng)之間的主要區(qū)別。

機(jī)制

單片

微服務(wù)

處理

將所有功能放在一個(gè)過程中。

將各個(gè)功能放入單獨(dú)的服務(wù)中。

縮放

在多個(gè)服務(wù)器中復(fù)制monolith。

在需要時(shí),跨服務(wù)和重復(fù)分發(fā)服務(wù)。

為什么它會獲得人氣

開發(fā)和管理軟件應(yīng)用程序的微服務(wù)方式更符合不斷變化的業(yè)務(wù)需求,這是企業(yè)逐漸采用它的最重要原因。在充滿挑戰(zhàn)和動態(tài)的業(yè)務(wù)場景中,企業(yè)需要快速響應(yīng)不斷變化的需求,但單片軟件系統(tǒng)不允許他們這樣做。微服務(wù)更靈活,能夠適應(yīng)不斷變化的情況。微服務(wù)受歡迎的主要原因包括:

微服務(wù)應(yīng)用程序允許故障隔離。無論何時(shí)出現(xiàn)問題,服務(wù)的孤立,獨(dú)立性質(zhì)都允許與主要軟件和評估分離。在修復(fù)故障時(shí),軟件應(yīng)用程序不受影響。

企業(yè)不需要長期承諾使用特定的技術(shù)堆棧,因?yàn)樗鼈兛梢杂脻M足其需求的另一個(gè)替換它。

由于服務(wù)是孤立和獨(dú)立的,因此很容易獲得知識并開始工作。

什么是架構(gòu)組件?

微服務(wù)架構(gòu)的架構(gòu)組件也可稱為其定義特征。該體系結(jié)構(gòu)的主要組件如下所述。

簡單的請求處理架構(gòu)

與使用高級系統(tǒng)執(zhí)行消息路由,編排和應(yīng)用業(yè)務(wù)規(guī)則等任務(wù)的復(fù)雜系統(tǒng)(如企業(yè)服務(wù)總線(ESB))不同,微服務(wù)架構(gòu)以簡單的方式處理請求:它接受請求,處理請求并生成響應(yīng)。

權(quán)力下放和靈活性

微服務(wù)架構(gòu)允許企業(yè)從任何地方添加獨(dú)立服務(wù),無論用于開發(fā)這些服務(wù)的語言或程序如何。這允許軟件開發(fā)人員根據(jù)他們的需要選擇最合適的服務(wù)。

強(qiáng)大的問題管理

由于該體系結(jié)構(gòu)可能包括幾個(gè)不斷相互影響的不同服務(wù),因此總會出現(xiàn)問題。在這種情況下,有問題的服務(wù)可以與整個(gè)軟件系統(tǒng)隔離,并在軟件系統(tǒng)繼續(xù)平穩(wěn)運(yùn)行時(shí)進(jìn)行修復(fù)或替換。

這個(gè)怎么運(yùn)作

微服務(wù)架構(gòu)基于其原理工作,可以跨軟件應(yīng)用程序應(yīng)用,無論技術(shù)或平臺如何。微服務(wù)的工作方式如下所述:

構(gòu)建它并運(yùn)行它

它遵循亞馬遜的“構(gòu)建并運(yùn)行它”的理念。軟件應(yīng)用程序已經(jīng)構(gòu)建,并且假設(shè)開發(fā)團(tuán)隊(duì)即使在軟件交付后也要負(fù)責(zé)。這與軟件項(xiàng)目的情況不同,在軟件項(xiàng)目交付后,開發(fā)團(tuán)隊(duì)被拆除,責(zé)任交給維護(hù)團(tuán)隊(duì)。在這種情況下,開發(fā)團(tuán)隊(duì)即使在交付軟件后也要承擔(dān)全部責(zé)任。

將軟件組件化為服務(wù)

雖然微服務(wù)架構(gòu)可以像單片軟件系統(tǒng)那樣工作 - 調(diào)用庫 - 它提供了一個(gè)獨(dú)特的功能。庫是鏈接到程序的組件,該程序在內(nèi)存函數(shù)調(diào)用的幫助下調(diào)用。但是微服務(wù)使用的服務(wù)是進(jìn)程外組件,它們通過Web服務(wù)或遠(yuǎn)程過程調(diào)用等元素與軟件進(jìn)行通信。

它與SOA有什么不同?

面向服務(wù)的體系結(jié)構(gòu)(SOA)是一種基于服務(wù)或RESTful Web服務(wù)的體系結(jié)構(gòu),它執(zhí)行各種功能 - 例如,顯示系統(tǒng)狀態(tài),創(chuàng)建用戶和更新用戶數(shù)據(jù)。SOA允許軟件開發(fā)人員構(gòu)建,調(diào)用和公開服務(wù),并協(xié)調(diào)服務(wù)以提供解決方案。就像在微服務(wù)中一樣,SOA中的服務(wù)都是獨(dú)立的,松散耦合的服務(wù)。雖然SOA和微服務(wù)架構(gòu)在以服務(wù)形式組件化軟件應(yīng)用程序時(shí)都有共同的原則,但它們并不相同。SOA和微服務(wù)架構(gòu)之間的主要區(qū)別如下所述。(要了解有關(guān)SOA的更多信息,請閱讀BPM和SOA:他們?nèi)绾瓮苿訕I(yè)務(wù)發(fā)展。)

溝通機(jī)制

雖然SOA允許您在各種技術(shù)堆棧中開發(fā)服務(wù)并將其部署以開發(fā)軟件應(yīng)用程序,但它還要求每個(gè)服務(wù)使用通用通信機(jī)制進(jìn)行通信。但是,在微服務(wù)架構(gòu)的情況下,沒有這樣的要求。服務(wù)可以獨(dú)立部署和運(yùn)營。

溝通失敗的影響

在SOA中,企業(yè)服務(wù)總線用于跨所有部署的服務(wù)進(jìn)行通信。在ESB發(fā)生故障的情況下,服務(wù)之間的通信可能會中斷。顯然,完全依賴于ESB。在微服務(wù)的情況下,每個(gè)服務(wù)可以不同地構(gòu)建,并且在出現(xiàn)故障或錯誤的情況下,僅該特定服務(wù)受影響而不受其他服務(wù)的影響。

規(guī)模和范圍

微服務(wù)架構(gòu)中的每項(xiàng)服務(wù)往往都明顯小于SOA架構(gòu)中的服務(wù)。微服務(wù)是可獨(dú)立部署的服務(wù),而SOA可以是整體應(yīng)用程序或小型可部署服務(wù)的一部分。

微服務(wù)的一些例子

許多著名的組織已經(jīng)離開了用于微服務(wù)架構(gòu)的單片系統(tǒng),包括Netflix,eBay,亞馬遜,英國政府?dāng)?shù)字服務(wù),Twitter,PayPal,Soundcloud,衛(wèi)報(bào)等等。

Netflix一直在SOA架構(gòu)中使用微服務(wù)取得了巨大成功。它每天通過來自800多種不同設(shè)備的API接收超過10億個(gè)呼叫,然后再撥打5個(gè)后端服務(wù)。

eBay已經(jīng)轉(zhuǎn)向微服務(wù),其核心應(yīng)用程序包括幾個(gè)較小的自治應(yīng)用程序。每個(gè)小應(yīng)用程序都為應(yīng)用程序的不同業(yè)務(wù)領(lǐng)域執(zhí)行業(yè)務(wù)邏輯。

結(jié)論

很明顯,微服務(wù)非常受歡迎,因?yàn)樗鼈兏喜粩嘧兓臉I(yè)務(wù)場景。但是,需要牢記的是,將多種多樣化的服務(wù)組合在一起以實(shí)現(xiàn)單一目標(biāo)并非易事。企業(yè)仍然需要在系統(tǒng)中管理清晰,及時(shí)的溝通,這可能是一個(gè)挑戰(zhàn)。此外,管理團(tuán)隊(duì)或具有管理如此眾多不同服務(wù)知識的人員可能是一項(xiàng)挑戰(zhàn)。考慮到所有因素,微服務(wù)架構(gòu)似乎仍然比單片架構(gòu)更好。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。