容器、微服務(wù)和互聯(lián)網(wǎng)架構(gòu)淺談

      網(wǎng)友投稿 643 2025-03-31

      隨著云服務(wù)的興起,企業(yè)應(yīng)用正在從分層式架構(gòu)逐步遷移到互聯(lián)網(wǎng)架構(gòu)。傳統(tǒng)的企業(yè)應(yīng)用架構(gòu)通常是單一架構(gòu)(Monolithic),即典型的MVC三層架構(gòu)。以一個主流的J2EE企業(yè)應(yīng)用而言,其按照模型(數(shù)據(jù)層)——控制器(服務(wù)層)——視圖(訪問層)進(jìn)行構(gòu)建,然后打包為一個war包,部署運行于J2EE應(yīng)用服務(wù)器上,例如Tomcat、JBoss、WebLogic等。

      然而,經(jīng)過多年應(yīng)用,Monolithic架構(gòu)也逐漸老化,越來越不適應(yīng)技術(shù)的發(fā)展。首先,隨著加入的應(yīng)用功能增多,產(chǎn)生了代碼堆積現(xiàn)象,系統(tǒng)越來越龐大和復(fù)雜。尤其是引入敏捷開發(fā)后,產(chǎn)生了較多問題。例如應(yīng)用持續(xù)集成方法時,自動加載、編譯、加載、測試整個應(yīng)用代碼的時間過長,不能快速形成正反饋。其次,組件與組件之間的耦合性太強,所有應(yīng)用都運行在服務(wù)器上的相同進(jìn)程中。應(yīng)用規(guī)模增大后,只有同時增加應(yīng)用的副本,將多個副本部署到多個服務(wù)器上,無法實現(xiàn)彈性伸縮。最后,開發(fā)團(tuán)隊之間,工作交集復(fù)雜,協(xié)調(diào)耗散大。

      容器、微服務(wù)和互聯(lián)網(wǎng)架構(gòu)淺談

      從長期實踐看,Monolithic架構(gòu)天然的不具備健壯性,因為一旦某個組件出現(xiàn)問題,整個服務(wù)基本上就掛了。自身不具備分布式服務(wù)能力,通常需要依賴于負(fù)載均衡器、數(shù)據(jù)庫HA等來實現(xiàn)服務(wù)的分布化和負(fù)載分擔(dān)。相對而言,互聯(lián)網(wǎng)架構(gòu)優(yōu)勢在于分布式、去中心化,支持彈性伸縮。其核心是輕應(yīng)用、微服務(wù)。微服務(wù)架構(gòu)也是從Monolithic架構(gòu)演進(jìn)來的。Monolithic應(yīng)用中按照職責(zé)的不同,拆分解耦成一個個的單獨微服務(wù)(Micro Services),每個微服務(wù)都對應(yīng)了一個獨立的業(yè)務(wù)功能,也只定義了該功必須的一些操作。從下圖可以形象的說明。

      微服務(wù)獨自或者共同部署在多臺應(yīng)用服務(wù)器上,微服務(wù)之間通過標(biāo)準(zhǔn)的Restful接口實現(xiàn)訪問。這樣當(dāng)一個微服務(wù)出現(xiàn)問題時,并不會影響到其他的服務(wù)。而且,微服務(wù)可以基于資源的需求進(jìn)行獨立擴展,可以被部署在更小的主機上。各個微服務(wù)使用的開發(fā)語言也可以不同,只要保持接口協(xié)議統(tǒng)一。

      隨著移動互聯(lián)網(wǎng)的爆發(fā),越來越多的采用前端手機APP(Native或HTML5)+后端應(yīng)用(Java、NodeJS等)的開發(fā)/部署模式,兩者之間通常采用Restful方式實現(xiàn)通訊,天然的實現(xiàn)了前臺和后臺的解耦,這也為微服務(wù)的流行提供了根本動力。

      然而,不容忽視的是,微服務(wù)同樣存在一些劣勢。因為微服務(wù)通常部署在多個主機上,所以大量微服務(wù)的管理也成為一個難題。如果微服務(wù)使用不同的編程語言將開發(fā),這就意味著每個服務(wù)的部署都需要完全不同的庫和框架,從而服務(wù)的部署會非常復(fù)雜。

      幸運的是,Linux容器技術(shù)的使用可以很大程度上緩解微服務(wù)架構(gòu)所帶來的問題。Linux容器技術(shù)使用了類似cnames和namespaces這樣的內(nèi)核接口,它允許不同容器共享相同的內(nèi)核,同時容器之間還進(jìn)行了完全的隔離。

      目前流行的Linux容器主要有Docker和Rocket。以Docker為例,Docker執(zhí)行環(huán)境使用了一個被稱為libcontainer的模塊,它標(biāo)準(zhǔn)化了這些接口。Docker同樣為容器鏡像提供了一個類GitHub的資源庫DockerHub,讓容器的共享和發(fā)布非常簡單,也正是這種相同主機上的容器隔離簡易了不同語言開發(fā)的微服務(wù)代碼部署。使用Docker,我們可以創(chuàng)建一個DockerFile來描述所有用到的語言、框架和服務(wù)間庫的依賴性。

      將微服務(wù)應(yīng)用放置在容器中,帶來了快速與可移植性。從開發(fā)、測試、上線,實現(xiàn)了“一次編寫,到處運行”。

      總之,通過容器、微服務(wù)的有效結(jié)合應(yīng)用,最終幫助企業(yè)應(yīng)用演進(jìn)到互聯(lián)網(wǎng)架構(gòu),實現(xiàn)IT投資和收益的最優(yōu)化。

      轉(zhuǎn)載請注明出處:華為云博客 https://portal.hwclouds.com/blogs

      容器 微服務(wù) 架構(gòu)設(shè)計

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:甘特圖Excel表格模板大全,免費下載excel甘特圖模板
      下一篇:Excel表格怎么輸入身份證號碼(excel表格怎么輸入身份證號碼不出來綠三角)
      相關(guān)文章
      亚洲愉拍一区二区三区| 亚洲精品无码久久毛片波多野吉衣| 亚洲视频在线观看地址| 亚洲国产精品无码久久一线| 国产亚洲精品精品国产亚洲综合| 亚洲AV无码男人的天堂| 亚洲成_人网站图片| 亚洲av无码片在线播放| 亚洲va无码手机在线电影| JLZZJLZZ亚洲乱熟无码| 日韩色日韩视频亚洲网站| 亚洲欧美精品午睡沙发| 日本亚洲免费无线码 | 亚洲国产精品一区二区第四页| 亚洲熟妇成人精品一区| 久久精品国产亚洲av麻豆蜜芽 | 666精品国产精品亚洲| 亚洲视频精品在线| 久久精品亚洲一区二区| 亚洲人成网7777777国产| 亚洲色婷婷综合开心网| 亚洲福利在线播放| 国产精品亚洲精品日韩动图| 亚洲国产精品嫩草影院| 中文无码亚洲精品字幕| 亚洲一区精彩视频| 亚洲人成网站看在线播放| 亚洲一区二区三区免费观看| 亚洲网红精品大秀在线观看| 久久久婷婷五月亚洲97号色| 亚洲午夜精品一区二区| 国产成人精品曰本亚洲79ren| 亚洲hairy多毛pics大全| 久久亚洲精品国产亚洲老地址| 亚洲国语在线视频手机在线| 亚洲av网址在线观看| 亚洲av永久无码精品表情包| 亚洲av永久无码精品漫画| 亚洲国产精品久久久久婷婷软件 | 国产av无码专区亚洲av果冻传媒| 久久精品国产精品亚洲人人|