來源:大房子愛生活 發(fā)布時間:2019-04-26 15:25:40 閱讀量:1478
單體架構(gòu)
所謂的單體架構(gòu)就是把所有的業(yè)務(wù)模塊編寫在一個項目中,最終會打包成一個war包,然后進(jìn)行部署
單體架構(gòu)的優(yōu)點(diǎn):
部署簡單:由于是完整的結(jié)構(gòu)體,可以直接部署在一份服務(wù)器上即可
技術(shù)單一:項目不需要復(fù)雜的技術(shù)棧,往往一套熟悉的技術(shù)棧就可以完成開發(fā)
用人成本低:單個程序員可以完成業(yè)務(wù)接口道數(shù)據(jù)庫的整個流程
單體架構(gòu)的缺點(diǎn):
系統(tǒng)啟動慢:一個進(jìn)程包含了所有的業(yè)務(wù)邏輯,涉及到的啟動模塊過多,導(dǎo)致系統(tǒng)的啟動時間周期過長
系統(tǒng)錯誤隔離性差:可用性差,任何一個模塊的錯誤均可能造成整個系統(tǒng)的宕機(jī)
可伸縮性差:系統(tǒng)的擴(kuò)容只能對這個應(yīng)用進(jìn)行擴(kuò)容,不能做到對莫謳歌功能點(diǎn)進(jìn)行擴(kuò)容
線上問題修復(fù)周期長:任何一個線上問題修復(fù)需要對整個應(yīng)用系統(tǒng)全面升級
微服務(wù)系統(tǒng)架構(gòu):
微服務(wù)架構(gòu)風(fēng)格是一種將一個單一應(yīng)用程序開發(fā)為一組小型服務(wù)的方法,每一個服務(wù)運(yùn)行在自己的進(jìn)程中,服務(wù)間通信采用的輕量級通信機(jī)制(通常用Http資源API),這些服務(wù)圍繞業(yè)務(wù)能力構(gòu)建并且可通過全自動部署機(jī)制獨(dú)立部署,這些服務(wù)公用一個最小型的集中式的管理,服務(wù)可用不同的語言開發(fā),使用不同的數(shù)據(jù)存儲技術(shù)
微服務(wù)架構(gòu)的優(yōu)點(diǎn):
易于開發(fā)和維護(hù):一個微服務(wù)只會關(guān)注一個特定的業(yè)務(wù)功能,所以他的業(yè)務(wù)清晰,代碼量少,開發(fā)和維護(hù)單個微服務(wù)相當(dāng)簡單,而整個應(yīng)用是若干個微服務(wù)構(gòu)建而成的,所以整個應(yīng)用也被維持在一個可控狀態(tài)
單個微服務(wù)啟動較快:單個微服務(wù)代碼量較少,所以啟動會比較快
局部修改容易部署
技術(shù)棧不受限
按需收縮:可根據(jù)需求,實(shí)現(xiàn)細(xì)粒度的擴(kuò)展,例如:系統(tǒng)中的某個微服務(wù)遇到了瓶頸,可以結(jié)合這個微服務(wù)的業(yè)務(wù)特點(diǎn),增加內(nèi)存,升級CPU或者增加節(jié)點(diǎn)
可以承受高并發(fā)
微服務(wù)架構(gòu)的缺點(diǎn):
運(yùn)維要求較高:更多的服務(wù)意味著更多的運(yùn)維投入,在單體架構(gòu)中,只需要保證一個應(yīng)用的正常運(yùn)行,而在微服務(wù)中,需要保證幾十甚至幾百個服務(wù)正常運(yùn)行與協(xié)作,這給運(yùn)維帶來了很大的挑戰(zhàn)
分布式固有的復(fù)雜性:使用微服務(wù)構(gòu)建的是分布式系統(tǒng),對于一個分布式系統(tǒng),系統(tǒng)容錯,網(wǎng)絡(luò)延遲等都會帶來巨大的挑戰(zhàn)
接口調(diào)整成本高:微服務(wù)之間通過接口進(jìn)行通信,如果修改某一微服務(wù)API,肯呢個所有使用該接口的微服務(wù)都需要調(diào)整