解決好跨應用的連接和數(shù)據(jù)訪問后,我們的應用也要做好相應的改造,如應用分層的設計、接口服務化拆分等。
(1 )應用分層設計
應用分層設計很有必要。例如最起碼要把對數(shù)據(jù)庫的訪問統(tǒng)-抽象出來形成數(shù)據(jù)層,而不是直接在代碼里寫SQL-這會使 重構應用和水平拆分數(shù)據(jù)庫非常困難。我們通常從垂直方向劃分應用,分成服務層、業(yè)務邏輯層和數(shù)據(jù)層,每一層盡量做到解耦:上層依賴下層, 而下層不要反向依賴上層。
應用分層最核心的目的是每個層都會封裝一些信息、完成一些特定的功能需求,層與層之間通過接口交互,而且交互的數(shù)據(jù)是清晰和固定的,做到隔離和交互??梢詮囊韵聝蓚€方向判斷分層是否合理。
第一,如果我要增加-些新需求或者修改某些需求時,是否能清楚地知道要到哪個層去完成,換句話說,這些分層的職責是否清晰。
第二,如果每個層對我的接口不變,那么每個層內(nèi)部的修改是否會導致其他層也發(fā)生修改,即每個層是否做到了收斂。
分層設計中最怕的就是在接口中設計一些超級數(shù)據(jù)結構,如傳遞個對象, 然后把這個對象一直傳遞下去,而且每個層都可能修改這個對象。這種做法導致兩個問題:-是一旦該對象更改,所有層都要隨之更改;二是無法知道該對象的數(shù)據(jù)在哪個層被修改,在排查問題時會比較復雜。因此,在設計層接口時要盡量使用原生數(shù)據(jù)類型如String、Integer 和Long等。
(2)微服務化
微服務化,是從水平劃分的角度盡量把服務分得更細,每個業(yè)務只負責一個功能單元,這樣可以把這些微服務組合成更大的功能模塊。也就是有目的地拆小應用,形成單一職責從而提升系統(tǒng)可維護性、擴展性和開發(fā)效率。
基于Spring Boot構建的一個典型的微服務
深圳網(wǎng)站建設架構,它按照不同功能將大的會員服務和商品服務拆成更小原子的服務,將重要穩(wěn)定的服務獨立出來,以免經(jīng)常更新的服務發(fā)布影響這些重要穩(wěn)定的服務。
名稱欄目:網(wǎng)站應用的服務化改造
網(wǎng)站鏈接:http://www.rwnh.cn/news/149867.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、外貿(mào)網(wǎng)站建設、服務器托管、云服務器、響應式網(wǎng)站、Google
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源:
創(chuàng)新互聯(lián)