服务化的道路
我們?cè)趤砜匆幌路?wù)化的做法,我們把應(yīng)用分為三層,處于最上端的是web系統(tǒng),用于完成不同的業(yè)務(wù)功能,處于中間的是一些服務(wù)中心,不同的服務(wù)中心提供不同的業(yè)務(wù)服務(wù);處于最下層的則是業(yè)務(wù)的數(shù)據(jù)庫?
與之前相比有幾個(gè)重要的變化,首先業(yè)務(wù)功能之間的訪問不僅僅是單機(jī)內(nèi)部的方法調(diào)用,還引入了遠(yuǎn)程的服務(wù)調(diào)用。其次,共享代碼不再是散落在不同的應(yīng)用中,這些實(shí)現(xiàn)被放在各個(gè)服務(wù)中心。最后,數(shù)據(jù)庫的連接也發(fā)生了一些變化,我們把數(shù)據(jù)庫的交互工作放到了服務(wù)中心,讓前端的web應(yīng)用更加注重與瀏覽器的交互工作,而不必過多關(guān)注業(yè)務(wù)邏輯的事情。鏈接數(shù)據(jù)庫的任務(wù)交給響應(yīng)的業(yè)務(wù)服務(wù)中心了,這樣可以降低數(shù)據(jù)庫的連接數(shù)。?
而服務(wù)中心不僅把一些可以共用的代碼集中管理,而且還使得這些代碼變得更好維護(hù)。?
服務(wù)化的方式會(huì)帶來很多好處,首先,從結(jié)構(gòu)上來看,系統(tǒng)架構(gòu)更加清晰了,比原本的架構(gòu)更加立體。從穩(wěn)定性上來看,一些散落在多個(gè)應(yīng)用系統(tǒng)中的代碼變成了服務(wù)并且由專門的團(tuán)隊(duì)進(jìn)行統(tǒng)一維護(hù),一方面可以提高代碼的質(zhì)量,另一方面由于基礎(chǔ)核心模塊相對(duì)穩(wěn)定,修改和發(fā)布的頻次相對(duì)于業(yè)務(wù)系統(tǒng)來說會(huì)少很多,這也會(huì)提高整個(gè)架構(gòu)的穩(wěn)定性。最后,更加底層的資源由服務(wù)層統(tǒng)一管理,結(jié)構(gòu)更加清晰,對(duì)于團(tuán)隊(duì)開發(fā)效率來說有比較大的提高服務(wù)化的方式,對(duì)于研發(fā)也會(huì)有很大的影響,以前的開發(fā)模式是幾個(gè)大團(tuán)隊(duì)負(fù)責(zé)幾個(gè)大應(yīng)用,隨著服務(wù)化的落地,我們的應(yīng)用數(shù)量會(huì)飛速增長(zhǎng),系統(tǒng)內(nèi)部的依賴關(guān)系也會(huì)變的錯(cuò)綜復(fù)雜,同時(shí)團(tuán)隊(duì)也進(jìn)行了拆分,每個(gè)小團(tuán)隊(duì)專注于某個(gè)具體的服務(wù)或者應(yīng)用上,迭代效率也會(huì)更高?
?
總結(jié)
- 上一篇: 数据库问题解决后,应用面对的挑战
- 下一篇: 分布式架构的定义