日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
啊,業(yè)務(wù)層是否也需要服務(wù)化?

《互聯(lián)網(wǎng)分層架構(gòu)的本質(zhì)》簡述了兩個(gè)觀點(diǎn):

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比扎賚特網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式扎賚特網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋扎賚特地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

  • 互聯(lián)網(wǎng)分層架構(gòu)的本質(zhì),是數(shù)據(jù)的移動(dòng)
  • 互聯(lián)網(wǎng)分層架構(gòu)演進(jìn)的核心原則:是讓上游更高效的獲取與處理數(shù)據(jù),讓下游能屏蔽數(shù)據(jù)的獲取細(xì)節(jié)

《分層架構(gòu):什么時(shí)候抽象DAO層,什么時(shí)候抽象數(shù)據(jù)服務(wù)層》中的觀點(diǎn)是:

  • 當(dāng)手寫代碼從DB中獲取數(shù)據(jù),成為通用痛點(diǎn)的時(shí)候,就應(yīng)該抽象出DAO層,簡化數(shù)據(jù)獲取過程,提高數(shù)據(jù)獲取效率,向上游屏蔽底層的復(fù)雜性
  • 當(dāng)業(yè)務(wù)越來越復(fù)雜,垂直拆分的系統(tǒng)越來越多,數(shù)據(jù)庫實(shí)施了水平切分,數(shù)據(jù)層實(shí)施了緩存加速之后,底層數(shù)據(jù)獲取復(fù)雜性成為通用痛點(diǎn)的時(shí)候,就應(yīng)該抽象出數(shù)據(jù)服務(wù)層,簡化數(shù)據(jù)獲取過程,提高數(shù)據(jù)獲取效率,向上游屏蔽底層的復(fù)雜性

文本將要解答的問題是:

  • 基礎(chǔ)數(shù)據(jù)的訪問需要服務(wù)化,業(yè)務(wù)層是否需要服務(wù)化
  • 如果需要服務(wù)化,什么時(shí)候服務(wù)化

基礎(chǔ)數(shù)據(jù)的訪問服務(wù)化之后,一個(gè)業(yè)務(wù)系統(tǒng)的后端架構(gòu)如上:

  • web-server通過RPC接口,從基礎(chǔ)數(shù)據(jù)service獲取數(shù)據(jù)
  • 基礎(chǔ)數(shù)據(jù)service通過DAO,從db/cache獲取數(shù)據(jù)
  • db/cache存儲(chǔ)數(shù)據(jù)

隨著時(shí)間的推移,系統(tǒng)架構(gòu)并不會(huì)一成不變:

  • 隨著業(yè)務(wù)越來越復(fù)雜,業(yè)務(wù)會(huì)不斷進(jìn)行垂直拆分
  • 隨著數(shù)據(jù)越來越復(fù)雜,基礎(chǔ)數(shù)據(jù)service也會(huì)越來越多

于是系統(tǒng)架構(gòu)變成了上圖這個(gè)樣子,業(yè)務(wù)垂直拆分,有若干個(gè)基礎(chǔ)數(shù)據(jù)服務(wù):

  • 垂直業(yè)務(wù)要通過多個(gè)RPC接口訪問不同的基礎(chǔ)數(shù)據(jù)service,service共有是服務(wù)化的特征
  • 每個(gè)基礎(chǔ)數(shù)據(jù)service訪問自己的數(shù)據(jù)存儲(chǔ),數(shù)據(jù)私有也是服務(wù)化的特征

這個(gè)架構(gòu)圖中的依賴關(guān)系是不是看上去很別扭?

  • 基礎(chǔ)數(shù)據(jù)service與存儲(chǔ)層之前連接關(guān)系很清晰
  • 業(yè)務(wù)web-server層與基礎(chǔ)數(shù)據(jù)service層之間的連接關(guān)系錯(cuò)綜復(fù)雜,變成了蜘蛛網(wǎng)

再舉一個(gè)更具體的例子,58同城列表頁web-server如何獲取底層的數(shù)據(jù)?

  • 首先調(diào)用商業(yè)基礎(chǔ)service,獲取商業(yè)廣告帖子數(shù)據(jù),用于頂部置頂/精準(zhǔn)的廣告帖子展示
  • 再調(diào)用搜索基礎(chǔ)service,獲取自然搜索帖子數(shù)據(jù),用于中部自然搜索帖子展示
  • 再調(diào)用推薦基礎(chǔ)service,獲取推薦帖子數(shù)據(jù),用于底部推薦帖子展示
  • 再調(diào)用用戶基礎(chǔ)service,獲取用戶數(shù)據(jù),用于右側(cè)用戶信息展示

如果只有一個(gè)列表頁這么寫還行,但如果有招聘、房產(chǎn)、二手、二手車、黃頁…等多個(gè)大部分是共性數(shù)據(jù),少部分是個(gè)性數(shù)據(jù)的列表頁,每次都這么獲取數(shù)據(jù),就略顯低效了,有大量冗余、重復(fù)、每次必寫的代碼。

特別的,不同業(yè)務(wù)上游列表頁都依賴于底層若干相同服務(wù):

  • 一旦一個(gè)服務(wù)RPC接口有稍許變化,所有上游的系統(tǒng)都需要升級(jí)修改
  • 子系統(tǒng)之間很可能出現(xiàn)代碼拷貝
  • 一旦拷貝代碼,出現(xiàn)一個(gè)bug,多個(gè)子系統(tǒng)都需要升級(jí)修改

如何讓數(shù)據(jù)的獲取更加高效快捷呢?

業(yè)務(wù)服務(wù)化,通用業(yè)務(wù)服務(wù)層的抽象勢在必行。

通過抽象通用業(yè)務(wù)服務(wù)層,例如58同城“通用列表服務(wù)”:

  • web-server層,可以通過RPC接口,像調(diào)用本地函數(shù)一樣,調(diào)用通用業(yè)務(wù)service,一次性獲取所有通用數(shù)據(jù)
  • 通用業(yè)務(wù)service,也可以通過多次調(diào)用基礎(chǔ)數(shù)據(jù)service提供的RPC接口,分別獲取數(shù)據(jù),底層數(shù)據(jù)獲取的復(fù)雜性,全都屏蔽在了此處

是不是連接關(guān)系也看起來更清晰?

這樣的好處是:

  • 復(fù)雜的從基礎(chǔ)服務(wù)獲取數(shù)據(jù)代碼,只有在通用業(yè)務(wù)service處寫了一次,沒有代碼拷貝
  • 底層基礎(chǔ)數(shù)據(jù)service接口發(fā)生變化,只有通用業(yè)務(wù)service一處需要升級(jí)修改
  • 如果有bug,不管是底層基礎(chǔ)數(shù)據(jù)service的bug,還是通用業(yè)務(wù)service的bug,都只有一處需要升級(jí)修改
  • 業(yè)務(wù)web-server獲取數(shù)據(jù)更便捷,獲取所有數(shù)據(jù),只需一個(gè)RPC接口調(diào)用

結(jié)論:

當(dāng)業(yè)務(wù)越來越復(fù)雜,垂直拆分的系統(tǒng)越來越多,基礎(chǔ)數(shù)據(jù)服務(wù)越來越多,底層數(shù)據(jù)獲取復(fù)雜性成為通用痛點(diǎn)的時(shí)候,就應(yīng)該抽象出通用業(yè)務(wù)服務(wù),簡化數(shù)據(jù)獲取過程,提高數(shù)據(jù)獲取效率,向上游屏蔽底層的復(fù)雜性。

最后再強(qiáng)調(diào)兩點(diǎn):

  • 是否需要抽象通用業(yè)務(wù)服務(wù),和業(yè)務(wù)復(fù)雜性,以及業(yè)務(wù)發(fā)展階段有關(guān),不可一概而論
  • 需要抽象什么通用業(yè)務(wù)服務(wù),和具體業(yè)務(wù)相關(guān)

任何脫離業(yè)務(wù)的架構(gòu)設(shè)計(jì),都是耍流氓。

【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文


網(wǎng)站標(biāo)題:啊,業(yè)務(wù)層是否也需要服務(wù)化?
分享URL:http://www.dlmjj.cn/article/djosdip.html