網(wǎng)站應用的服務(wù)化改造發(fā)布者:本站 時(shí)間:2019-03-27 20:03:36
解決好跨應用的連接和數據訪(fǎng)問(wèn)后,我們的應用也要做好相應的改造,如應用分層的設計、接口服務(wù)化拆分等。
(1 )應用分層設計
應用分層設計很有必要。例如最起碼要把對數據庫的訪(fǎng)問(wèn)統-抽象出來(lái)形成數據層,而不是直接在代碼里寫(xiě)SQL-這會(huì )使 重構應用和水平拆分數據庫非常困難。我們通常從垂直方向劃分應用,分成服務(wù)層、業(yè)務(wù)邏輯層和數據層,每一層盡量做到解耦:上層依賴(lài)下層, 而下層不要反向依賴(lài)上層。
應用分層最核心的目的是每個(gè)層都會(huì )封裝一些信息、完成一些特定的功能需求,層與層之間通過(guò)接口交互,而且交互的數據是清晰和固定的,做到隔離和交互??梢詮囊韵聝蓚€(gè)方向判斷分層是否合理。
第一,如果我要增加-些新需求或者修改某些需求時(shí),是否能清楚地知道要到哪個(gè)層去完成,換句話(huà)說(shuō),這些分層的職責是否清晰。
第二,如果每個(gè)層對我的接口不變,那么每個(gè)層內部的修改是否會(huì )導致其他層也發(fā)生修改,即每個(gè)層是否做到了收斂。
分層設計中最怕的就是在接口中設計一些超級數據結構,如傳遞個(gè)對象, 然后把這個(gè)對象一直傳遞下去,而且每個(gè)層都可能修改這個(gè)對象。這種做法導致兩個(gè)問(wèn)題:-是一旦該對象更改,所有層都要隨之更改;二是無(wú)法知道該對象的數據在哪個(gè)層被修改,在排查問(wèn)題時(shí)會(huì )比較復雜。因此,在設計層接口時(shí)要盡量使用原生數據類(lèi)型如String、Integer 和Long等。
(2)微服務(wù)化
微服務(wù)化,是從水平劃分的角度盡量把服務(wù)分得更細,每個(gè)業(yè)務(wù)只負責一個(gè)功能單元,這樣可以把這些微服務(wù)組合成更大的功能模塊。也就是有目的地拆小應用,形成單一職責從而提升系統可維護性、擴展性和開(kāi)發(fā)效率。
基于Spring Boot構建的一個(gè)典型的微服務(wù)深圳網(wǎng)站建設架構,它按照不同功能將大的會(huì )員服務(wù)和商品服務(wù)拆成更小原子的服務(wù),將重要穩定的服務(wù)獨立出來(lái),以免經(jīng)常更新的服務(wù)發(fā)布影響這些重要穩定的服務(wù)。
選擇我們,優(yōu)質(zhì)服務(wù),不容錯過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò )資源,強大的網(wǎng)站優(yōu)化技術(shù),穩定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術(shù)和設計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò ),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032