自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

理解微服務(wù)的定義,概念以及微服務(wù)的原理

開發(fā) 架構(gòu)
微服務(wù)是業(yè)界比較新的流行語,似乎每個(gè)人都在以這樣或那樣的方式談?wù)撍?。讓我們理解一下什么是微服?wù)?通過這篇教程我們將理解微服務(wù)的定義,概念以及微服務(wù)的原理。

微服務(wù)是業(yè)界比較新的流行語,似乎每個(gè)人都在以這樣或那樣的方式談?wù)撍?。讓我們理解一下什么是微服?wù)?通過這篇教程我們將理解微服務(wù)的定義,概念以及微服務(wù)的原理。

[[276436]]

微服務(wù)的定義

如今,微服務(wù)是SOA(面向服務(wù)的架構(gòu))之后越來越流行的架構(gòu)模式之一,如果您正在跟蹤行業(yè)趨勢,那么您會發(fā)現(xiàn),現(xiàn)在的企業(yè)不再像幾年前那樣對開發(fā)大型應(yīng)用程序來管理端到端業(yè)務(wù)功能感興趣。相反,他們選擇快速和敏捷的應(yīng)用程序,這也使他們花費(fèi)更少的錢。

微服務(wù)有助于打破大型應(yīng)用程序的邊界,并在系統(tǒng)內(nèi)部構(gòu)建邏輯上獨(dú)立的較小系統(tǒng),例如,使用Amazon AWS,你可以輕松構(gòu)建云應(yīng)用程序。這是微服務(wù)的一個(gè)很好的例子。

 

理解微服務(wù)的定義,概念以及微服務(wù)的原理

 

 

理解微服務(wù)的定義,概念以及微服務(wù)的原理

 

 

理解微服務(wù)的定義,概念以及微服務(wù)的原理

 

如上圖所示,每個(gè)微服務(wù)有它自己的業(yè)務(wù)層以及數(shù)據(jù)庫,改變其中一個(gè)微服務(wù)不會對另外的微服務(wù)有任何的影響。

總之,微服務(wù)之間使用廣泛的輕量級協(xié)議進(jìn)行通信,例如 HTTP 和 REST,TCP, 或者 消息協(xié)議, 例如 JMS 和 AMQP。在特定的場景,他們也可以選擇更專業(yè)的協(xié)議。

 

微服務(wù)的原理

現(xiàn)在我們來看一下微服務(wù)必須需要的原則。

1.單一功能職責(zé)

單一功能職責(zé)是SOLID設(shè)計(jì)模式之一,它意味著一個(gè)單元,無論是類、函數(shù)還是微服務(wù),都應(yīng)該有且只有一個(gè)職責(zé)。在任何時(shí)候,一個(gè)微服務(wù)都不應(yīng)該有一個(gè)以上的職責(zé)。

2.圍繞著業(yè)務(wù)功能設(shè)計(jì)

微服務(wù)應(yīng)該專注于特定的業(yè)務(wù)功能,并確保它有助于完成任務(wù)。微服務(wù)絕不應(yīng)限制自己采用最適合解決業(yè)務(wù)目的的適當(dāng)技術(shù)?;蚝蠖藬?shù)據(jù)庫存儲。當(dāng)我們設(shè)計(jì)單個(gè)應(yīng)用程序時(shí),這常常是一個(gè)約束,我們試圖在某些領(lǐng)域中使用一些折衷來解決多個(gè)業(yè)務(wù)解決方案。微服務(wù)使您能夠選擇最適合當(dāng)前問題的解決方案。

 

3.你建造它,你擁有它。

這種設(shè)計(jì)的另一個(gè)重要方面與開發(fā)前后的職責(zé)有關(guān)。在大型組織中,通常由一個(gè)團(tuán)隊(duì)開發(fā)app location,經(jīng)過一些知識轉(zhuǎn)移會議后,將項(xiàng)目移交給維護(hù)團(tuán)隊(duì)。在微服務(wù)中,構(gòu)建服務(wù)的團(tuán)隊(duì)擁有它,并負(fù)責(zé)在將來維護(hù)它。這使開發(fā)人員能夠接觸到他們的軟件的日常操作,并且他們能夠更好地理解他們構(gòu)建的產(chǎn)品在現(xiàn)實(shí)世界中是如何被客戶使用的。

4.基礎(chǔ)設(shè)施自動化

準(zhǔn)備和構(gòu)建微服務(wù)的基礎(chǔ)設(shè)施是另一個(gè)非常重要的需求,服務(wù)應(yīng)該是可獨(dú)立部署的,并且應(yīng)該捆綁所有依賴項(xiàng),包括庫依賴項(xiàng),甚至是執(zhí)行環(huán)境,如抽象物理資源(web服務(wù)器和容器或虛擬機(jī))。

微服務(wù)和SOA之間的一個(gè)主要區(qū)別在于它們的自治級別。雖然大多數(shù)SOA實(shí)現(xiàn)提供了服務(wù)級抽象,但是微服務(wù)更進(jìn)一步抽象了實(shí)現(xiàn)和執(zhí)行環(huán)境。

在傳統(tǒng)的應(yīng)用程序開發(fā)中,我們構(gòu)建一個(gè)WAR或EAR,然后將其部署到JEE應(yīng)用程序服務(wù)器中,例如使用JBoss、WebLogic、WebSphere等等。我們可以將多個(gè)應(yīng)用程序部署到同一個(gè)JEE容器中。在理想的場景中,在微服務(wù)方法中,每個(gè)微服務(wù)將構(gòu)建為一個(gè)胖Jar,嵌入所有依賴項(xiàng),并作為獨(dú)立的Java進(jìn)程運(yùn)行。

5.容錯設(shè)計(jì)

微服務(wù)的設(shè)計(jì)應(yīng)考慮到故障情況。如果服務(wù)失敗,或者宕機(jī)一段時(shí)間,該怎么辦?這些都是非常重要的問題,必須在實(shí)際編碼開始之前解決——以便清楚地估計(jì)服務(wù)故障將如何影響用戶體驗(yàn)。

快速故障是另一個(gè)用于構(gòu)建容錯、彈性系統(tǒng)的概念。這種哲學(xué)提倡預(yù)期失敗的系統(tǒng),而不是構(gòu)建永遠(yuǎn)不會失敗的系統(tǒng)。由于服務(wù)在任何時(shí)候都可能失敗,因此能夠快速檢測故障并在可能的情況下自動恢復(fù)服務(wù)非常重要。

微服務(wù)應(yīng)用程序非常重視應(yīng)用程序的實(shí)時(shí)監(jiān)控,檢查體系結(jié)構(gòu)元素(數(shù)據(jù)庫每秒接收多少請求)和業(yè)務(wù)相關(guān)指標(biāo)(例如每分鐘接收多少訂單)。語義監(jiān)視可以提供出錯的早期預(yù)警系統(tǒng),從而觸發(fā)開發(fā)團(tuán)隊(duì)進(jìn)行跟蹤和調(diào)查。

 

微服務(wù)的優(yōu)點(diǎn)

微服務(wù)有許多優(yōu)點(diǎn)相比傳統(tǒng)的多層架構(gòu)(單體龐大應(yīng)用),微服務(wù)的優(yōu)點(diǎn)如下:

1,使用微服務(wù),架構(gòu)師和開發(fā)人員可以為每個(gè)微服務(wù)選擇適合于特定用途的架構(gòu)和技術(shù)(通曉多種語言對應(yīng)的熟悉語言的架構(gòu))。這為以更經(jīng)濟(jì)有效的方式設(shè)計(jì)更適合的解決方案提供了靈活性。

2,由于服務(wù)相當(dāng)簡單,而且規(guī)模更小,企業(yè)可以試驗(yàn)新的流程、算法、業(yè)務(wù)邏輯等等。它通過提供快速試驗(yàn)和失敗的能力,使企業(yè)能夠進(jìn)行顛覆性創(chuàng)新。

3,微服務(wù)能夠?qū)崿F(xiàn)選擇性的可伸縮性,即每個(gè)服務(wù)都可以獨(dú)立地伸縮,而且伸縮的成本相對于單體應(yīng)用方面要低。

4,微服務(wù)是自包含的、獨(dú)立的部署模塊,當(dāng)?shù)诙€(gè)微服務(wù)沒有按照我們的需要執(zhí)行時(shí),可以使用另一個(gè)類似的微服務(wù)替換一個(gè)微服務(wù)。它有助于做出正確的“購買構(gòu)建”決策,而這通常是許多企業(yè)面臨的挑戰(zhàn)。

5,微服務(wù)幫助我們構(gòu)建本質(zhì)上是有機(jī)的系統(tǒng)(有機(jī)的系統(tǒng)是通過添加越來越多的功能在一段時(shí)間內(nèi)橫向增長的系統(tǒng))。因?yàn)槲⒎?wù)都是關(guān)于獨(dú)立可管理的服務(wù)——它允許在需要時(shí)添加越來越多的服務(wù),而對現(xiàn)有服務(wù)的影響最小。

6,技術(shù)變化是軟件開發(fā)中的障礙之一。使用微服務(wù),可以單獨(dú)更改或升級每個(gè)服務(wù)的技術(shù),而不是升級整個(gè)應(yīng)用程序。

7,由于microservices將服務(wù)運(yùn)行時(shí)環(huán)境和服務(wù)本身打包在一起,因此允許在同一環(huán)境中共存多個(gè)版本的服務(wù)。

8,最后,微服務(wù)還支持更小、更專注的敏捷開發(fā)團(tuán)隊(duì)。團(tuán)隊(duì)將根據(jù)微服務(wù)的邊界進(jìn)行組織。

總結(jié):

在本文中,我僅列出了在我有限的知識范圍內(nèi)在許多組織中看到的微服務(wù)的一些優(yōu)點(diǎn)。由強(qiáng)大的設(shè)計(jì)和出色的代碼支持的單體應(yīng)用程序也可以證明是一個(gè)好的決策,并且產(chǎn)品可以停留足夠長的時(shí)間來支持決策。

與微服務(wù)類似,糟糕的設(shè)計(jì)決策將被證明代價(jià)高昂。它們可能看起來簡化了組件,但是它們可能增加了組件之間通信的復(fù)雜性,并且更難控制和管理。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2018-10-28 18:09:22

微服務(wù)Microservic架構(gòu)

2019-10-14 11:06:20

微服務(wù)單體應(yīng)用服務(wù)化

2024-07-02 14:23:12

2022-05-16 13:31:22

微服務(wù)架構(gòu)云原生微服務(wù)

2024-01-10 14:40:56

顆粒度開發(fā)微服務(wù)

2017-07-04 14:57:40

微服務(wù)paasdocker

2024-07-02 10:58:53

2021-12-29 08:30:48

微服務(wù)架構(gòu)開發(fā)

2024-11-06 16:27:12

2023-07-27 14:03:51

微服務(wù)

2020-08-14 09:27:50

微服務(wù)容器架構(gòu)

2020-12-17 10:34:47

微服務(wù)分布式系統(tǒng)

2019-12-12 10:56:00

微服務(wù)微服務(wù)架構(gòu)架構(gòu)

2018-12-12 09:59:47

微服務(wù)架構(gòu)分布式系統(tǒng)

2024-10-28 08:00:00

微服務(wù)架構(gòu)開發(fā)

2020-12-10 10:04:45

微服務(wù)Kubernetes容器

2023-08-31 17:13:01

架構(gòu)軟件開發(fā)

2019-10-16 08:41:46

微服務(wù)架構(gòu)Nginx

2022-03-31 08:15:38

微服務(wù)服務(wù)拆分架構(gòu)

2022-08-14 07:04:44

微服務(wù)架構(gòu)設(shè)計(jì)模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號