小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

微服務(wù)設(shè)計最佳實踐

 萬皇之皇 2018-08-19

你是否曾想過,什么是微服務(wù)?以及大規(guī)模的互聯(lián)網(wǎng)行業(yè),例如社交,電商,物流,金融等領(lǐng)域,如何使用微服務(wù)構(gòu)建互聯(lián)網(wǎng)應(yīng)用以滿足用戶需求。

要了解微服務(wù)是什么,你必須了解如何將單體應(yīng)用程序,拆解為獨立打包和部署的微型應(yīng)用程序。本文章將幫助你清晰化的理解,開發(fā)者如何根據(jù)需求使用微服務(wù)來構(gòu)建他們的應(yīng)用程序。


本文將從以下幾個維度進行闡述 


為何選擇微服務(wù)? 

什么是微服務(wù)? 

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

微服務(wù)架構(gòu)的優(yōu)點 

設(shè)計微服務(wù)的最佳實踐 


1,為何選擇微服務(wù)?


現(xiàn)在,在我介紹微服務(wù)之前,讓我們看看在微服務(wù)之前流行的架構(gòu),即單體架構(gòu)。

通俗地說,您可以說它類似于一個大容器,在這個容器中,應(yīng)用程序的所有軟件組件被緊密地打包并部署在一起。


羅列一下單片架構(gòu)的挑戰(zhàn):


不靈活 - 單片應(yīng)用程序無法使用不同的技術(shù)構(gòu)建

不可靠 - 即使系統(tǒng)的某個功能不起作用,整個系統(tǒng)也不起作用

不可擴展 - 由于每次需要更新應(yīng)用程序時都無法輕松擴展應(yīng)用程序,因此必須重建整個系統(tǒng)

妨礙持續(xù)開發(fā) - 無法同時構(gòu)建和部署應(yīng)用程序的多個功能

緩慢的開發(fā) - 單體應(yīng)用程序的開發(fā)需要花費大量的時間來構(gòu)建,因為每個功能都必須一個接一個地構(gòu)建

不適合復(fù)雜的應(yīng)用程序 - 復(fù)雜應(yīng)用程序的功能具有緊密耦合的依賴關(guān)系


上述挑戰(zhàn)是導(dǎo)致微服務(wù)發(fā)展的主要原因。


2,什么是微服務(wù)?


微服務(wù),又稱微服務(wù)架構(gòu),是一種架構(gòu)風格,它將應(yīng)用程序構(gòu)建為以業(yè)務(wù)領(lǐng)域為模型的小型自治服務(wù)集合。

在微服務(wù)架構(gòu)中,每個服務(wù)都是獨立的,并實現(xiàn)單一業(yè)務(wù)功能。


傳統(tǒng)架構(gòu)與微服務(wù)架構(gòu)之間的差異

以電子商務(wù)網(wǎng)站為例,了解它們之間的差異。

我們在上圖中觀察到的主要區(qū)別是,所有功能最初都在共享單個數(shù)據(jù)庫的單個實例下。 但是,通過微服務(wù),每個功能都被分配了不同的微服務(wù),處理自己的數(shù)據(jù),并執(zhí)行不同的功能。


現(xiàn)在,讓我們通過查看其架構(gòu)來了解有關(guān)微服務(wù)的更多信息。請參考下圖:


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

1,來自不同設(shè)備的不同客戶端嘗試使用不同的服務(wù),如搜索,構(gòu)建,配置和其他管理功能

2,所有服務(wù)都根據(jù)其域和功能分開,并進一步切分成各個微服務(wù)

3,這些微服務(wù)有自己的負載均衡器和執(zhí)行環(huán)境來執(zhí)行它們的功能,同時在自己的數(shù)據(jù)庫中捕獲數(shù)據(jù)

4,所有微服務(wù)都通過無狀態(tài)服務(wù)器(REST或消息隊列)相互通信

5,微服務(wù)在服務(wù)發(fā)現(xiàn)中心的幫助下獲取其通信路徑,并執(zhí)行自動化,監(jiān)控等操作功能

6,然后,微服務(wù)執(zhí)行的所有功能都通過API網(wǎng)關(guān)傳達給客戶端

7,所有內(nèi)部點都從API網(wǎng)關(guān)連接。因此,任何連接到API網(wǎng)關(guān)的人都會自動連接到整個系統(tǒng)


現(xiàn)在,讓我們通過查看其功能來了解有關(guān)微服務(wù)的更多信息。


3,微服務(wù)功能


解耦 - 系統(tǒng)內(nèi)的服務(wù)很大程度上是分離的。因此,整個應(yīng)用程序可以輕松構(gòu)建,更改和擴展

組件化 - 微服務(wù)被視為可以輕松更換和升級的獨立組件

業(yè)務(wù)能力 - 微服務(wù)非常簡單,專注于單一功能

自治 - 開發(fā)人員和團隊可以彼此獨立工作,從而提高速度

持續(xù)交付 - 通過軟件創(chuàng)建,測試和審批的系統(tǒng)自動化,允許頻繁發(fā)布軟件

職責 - 微服務(wù)不關(guān)注作為項目的應(yīng)用程序。相反,他們將應(yīng)用程序視為他們負責的產(chǎn)品

分散治理 - 重點是使用正確的工具來做正確的工作。這意味著沒有標準化模式或任何技術(shù)模式。開發(fā)人員可以自由選擇最有用的工具來解決他們的問題

敏捷 - 微服務(wù)支持敏捷開發(fā)。任何新功能都可以快速開發(fā)并再次丟棄。


4,微服務(wù)的優(yōu)點


獨立開發(fā) - 所有微服務(wù)都可以根據(jù)各自的功能輕松開發(fā)

獨立部署 - 基于其服務(wù),可以在任何應(yīng)用程序中單獨部署它們

故障隔離 - 即使應(yīng)用程序的一項服務(wù)不起作用,系統(tǒng)仍可繼續(xù)運行

混合技術(shù)堆棧 - 可以使用不同的語言和技術(shù)來構(gòu)建同一應(yīng)用程序的不同服務(wù)

粒度縮放 - 單個組件可根據(jù)需要進行部署節(jié)點縮放,無需將所有組件部署縮放在一起

5,設(shè)計微服務(wù)的最佳實踐


在當今世界,復(fù)雜性已經(jīng)蔓延到互聯(lián)網(wǎng)的每個產(chǎn)品當中。微服務(wù)架構(gòu)有望保持團隊規(guī)模和功能更好。


現(xiàn)在,讓我們看一個案列來更好地理解微服務(wù)。


案例:購物網(wǎng)站


當您打開購物網(wǎng)站時,您看到的只是一個購買頁面。但是,在幕后,購物網(wǎng)站具有接受付款的服務(wù),用于客戶咨詢的服務(wù)等。


假設(shè)此網(wǎng)站的開發(fā)人員已在單一框架中創(chuàng)建它。請參閱下圖:

因此,所有功能都放在一個代碼庫中,并且位于單個底層數(shù)據(jù)庫下。


現(xiàn)在,讓我們假設(shè)市場上出現(xiàn)了一個新的品牌,開發(fā)商希望將即將到來的品牌所有細節(jié)都放在這個網(wǎng)站中,原有的數(shù)據(jù)庫結(jié)構(gòu)和UI展示已經(jīng)無法滿足。


然后,他們不僅需要為新標簽重做服務(wù),而且還必須重新構(gòu)建整個系統(tǒng)并相應(yīng)地進行部署。


為避免此類挑戰(zhàn),購物網(wǎng)站的開發(fā)人員決定將其應(yīng)用程序從單片架構(gòu)轉(zhuǎn)移到微服務(wù)。請參閱下圖了解購物網(wǎng)站的微服務(wù)架構(gòu)。

這意味著開發(fā)人員不會創(chuàng)建Web微服務(wù),邏輯微服務(wù)或數(shù)據(jù)庫微服務(wù)。相反,他們?yōu)樗阉?,推薦,客戶服務(wù)等創(chuàng)建單獨的微服務(wù)。


這種類型的應(yīng)用程序架構(gòu)不僅可以幫助開發(fā)人員克服以前架構(gòu)所面臨的所有挑戰(zhàn),還可以幫助輕松構(gòu)建,部署和擴展購物車應(yīng)用程序。


通過上述案列,我們可以總結(jié)出來,設(shè)計微服務(wù)的最佳實踐:

1,為每個微服務(wù)分別存儲數(shù)據(jù)

2,將代碼保持在類似的成熟度級別

3,為每個微服務(wù)單獨構(gòu)建

4,部署到容器

5,將服務(wù)設(shè)計為無狀態(tài)服務(wù)

陛下...看完奏折,點個贊再走吧!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多