一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

dubbo服務(wù)化實(shí)施整理

 昵稱9552892 2015-12-10

 

隨著快的業(yè)務(wù)的快速發(fā)展,我們逐步按照業(yè)務(wù)垂直劃分,抽象出基礎(chǔ)服務(wù)層。

一 服務(wù)化目標(biāo)

  • 基礎(chǔ)業(yè)務(wù)的服務(wù)為上游業(yè)務(wù)的靈活發(fā)展提供支持
  • 服務(wù)應(yīng)用本身無狀態(tài)化,可以隨著系統(tǒng)的負(fù)荷靈活伸縮來提供服務(wù)能
  • 服務(wù)的穩(wěn)定性,可用性達(dá)到99%

 

二 dubbo架構(gòu)

dubbo來作為服務(wù)化中間件,dubbo作為一個RPC框架,大致的原理如下圖

         

 

  • Registry: 注冊中心;和服務(wù)的消費(fèi)者,和服務(wù)提供者都建立長連接。服務(wù)提供者注冊服務(wù)到注冊中心;服務(wù)消費(fèi)者從注冊中心獲取服務(wù)提供者列表;
  • Consumer: 服務(wù)消費(fèi)端;服務(wù)消費(fèi)者從注冊中心獲取到服務(wù)提供者列表后,根據(jù)負(fù)載均衡算法,選擇一個服務(wù)提供者,和服務(wù)提供者直接建立連接,開始調(diào)用服務(wù);
  • Provider:服務(wù)提供者;服務(wù)提供者提供RPC服務(wù);
  • Monitor: 監(jiān)控服務(wù)的調(diào)用情況統(tǒng)計(jì);
  • 注冊中心為N+1對等集群,一臺掛掉后,會自動切換到另外一臺注冊中心
  • 注冊中心全部掛掉后,消息消費(fèi)者本地會緩存服務(wù)提供者列表,所以不影響當(dāng)時的服務(wù)調(diào)用。
  • 服務(wù)提供者為集群,一臺掛掉后,通過心跳過程,注冊中心會立即刷到服務(wù)消費(fèi)者告知;

 

三 工程分類

總體來說,服務(wù)化工程類型分為兩種
standalong工程
以獨(dú)立的應(yīng)用形式提供遠(yuǎn)程服務(wù),不依賴web容器,這是比較標(biāo)準(zhǔn)的服務(wù)提供形式,有3個子工程:
api
描述:業(yè)務(wù)域?qū)ν馓峁┑姆?wù)接口,參數(shù)類型
輸出:獨(dú)立jar,例如user-api.jar
core
描述:業(yè)務(wù)域的模型,包括數(shù)據(jù)和行為,只關(guān)心領(lǐng)域內(nèi)的數(shù)據(jù)和模型,不關(guān)心外部服務(wù)
輸出:獨(dú)立jar,例如user-core.jar,外部業(yè)務(wù)不能依賴該jar
impl
描述:業(yè)務(wù)域的遠(yuǎn)程服務(wù)實(shí)現(xiàn),負(fù)責(zé)服務(wù)啟動停止,內(nèi)部業(yè)務(wù)組裝,參數(shù)轉(zhuǎn)換
輸出:***-assembly.tar.gz,輸出是一個壓縮包
web工程
已有的web應(yīng)用暴露服務(wù),最好對原有的工程結(jié)構(gòu)無侵入,只是再增加2個子工程:
api
描述:業(yè)務(wù)域?qū)ν馓峁┑姆?wù)接口,參數(shù)類型
輸出:獨(dú)立jar,例如user-api.jar
impl
描述:業(yè)務(wù)域的遠(yuǎn)程服務(wù)實(shí)現(xiàn),負(fù)責(zé)服務(wù)啟動停止,內(nèi)部業(yè)務(wù)組裝,參數(shù)轉(zhuǎn)換
無論是否服務(wù)化,某個業(yè)務(wù)域內(nèi)部的數(shù)據(jù)和行為是不變的,服務(wù)化只是將業(yè)務(wù)域內(nèi)的邏輯做一些裁剪或聚合,然后供外部調(diào)用。業(yè)務(wù)域的內(nèi)部模型和提供的外部服務(wù)要劃分一個邊界,各自專注于自己的職責(zé)。以下是服務(wù)角色和子工程的對應(yīng)關(guān)系:

  

 

 

四 standalong工程 

依賴關(guān)系
服務(wù)內(nèi)部工程間的依賴都通過本地jar依賴,impl依賴api和core,沒有其他依賴關(guān)系,嚴(yán)禁core依賴api。關(guān)系如下

 

工程結(jié)構(gòu)

淺藍(lán)色是目錄,淺綠色是文件。assembly.xml不能修改,dubbo.properties和dubbo-provider.xml都可以修改,dubbo.properties描述服務(wù)公共配置,如注冊中心,超時等;dubbo-provider.xml通過spring描述具體服務(wù)信息

 

 

 

部署結(jié)構(gòu)

standalong型的應(yīng)用啟動停止都必須有對應(yīng)的腳本,這些腳本文件不需要每個standalong型應(yīng)用自己寫,只需要工程結(jié)構(gòu)遵循規(guī)范,執(zhí)行mvn package/install后,會在target自動輸出最后的部署包,部署包結(jié)構(gòu)如下圖:

淺藍(lán)色是目錄,淺綠色是文件。

lib目錄:存放依賴的jar包,工程里java代碼都會輸出為jar包到lib里

start.sh:啟動服務(wù)

restart.sh:重啟服務(wù)

stop.sh:停止服務(wù)

server.sh:命令入口,如server.sh start

dump.sh:dump應(yīng)用的線程棧,內(nèi)存,GC;供排查問題用

 

 

 

 

 

五 web工程

依賴關(guān)系

web應(yīng)用大致分為兩層:biz和web,實(shí)際上biz可能由內(nèi)部多個工程組成,這里biz只是一個抽象概念。impl依賴api和biz,web依賴impl和biz,沒有其他依賴關(guān)系,嚴(yán)禁biz依賴api。關(guān)系如下

 

 

 

工程結(jié)構(gòu)和部署結(jié)構(gòu)

web應(yīng)用的服務(wù)只需要配置在spring配置文件里,服務(wù)的啟動停止依賴web容器的啟動停止。所以web工程的服務(wù)化不需要調(diào)整原有工程結(jié)構(gòu),只是要增加兩個子工程:api和impl。 這樣做是希望某個已存在的web應(yīng)用要做服務(wù)化,不會對原有工程發(fā)生改動。

 
 

六 svn目錄結(jié)構(gòu)

對應(yīng)工程結(jié)構(gòu),svn目錄也做相應(yīng)的劃分,每個業(yè)務(wù)域是個大目錄,然后該目錄內(nèi)部又分為3個目錄:api,core,impl。以會員為例,svn目錄結(jié)構(gòu)為,以會員為例:
user
trunk
api
core
impl
branch

 

 

七 一些注意事項(xiàng)

  • 所有服務(wù)接口都以"RemoteService"結(jié)尾
  • 不要傳輸超大對象
  • 服務(wù)化接口涉及的入?yún)㈩愋秃头祷仡愋投急仨殞?shí)現(xiàn)序列化接口,并且必須放到api包
  • 子類和父類不允許有同名同類型的屬性,序列化容易出問題
  • 所有類型都應(yīng)該有序列化id
  • 外部參數(shù)和內(nèi)部參數(shù)必須做隔離,簡單來說就是core里面的東西不能被透傳到外部
以會員為例,假設(shè)core里存在UserService;有方法addUser(UserDO user);現(xiàn)在要將addUser(UserDO user)作為服務(wù)開放出去,則在api里加入UserRemoteService,UserRemoteService有對應(yīng)的方法:
addUser(UserDTO user),該方法內(nèi)部操作數(shù)據(jù)通過UserService.addUser實(shí)現(xiàn)。大概代碼如下:
UserRemoteService{
  private UserService userService;
  public void addUser(UserDTO userDTO){
        UserDO userDO=***Converter.convert(userDTO);
        userService.addUser(userDO);
  }
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲欧美国产中文色妇| 久久国产精品热爱视频| 欧美日韩国产精品黄片| 丰满少妇被猛烈撞击在线视频| 国产又黄又猛又粗又爽的片| 欧洲一区二区三区蜜桃| 成人欧美精品一区二区三区| 精品国产一区二区欧美| 无套内射美女视频免费在线观看| 日本一品道在线免费观看| 国产乱淫av一区二区三区| 东京热男人的天堂久久综合| 亚洲中文在线男人的天堂| 99国产高清不卡视频| 亚洲国产成人av毛片国产| 亚洲中文在线观看小视频| 国产亚洲欧美一区二区| 亚洲综合天堂一二三区| 成人精品视频在线观看不卡| 亚洲国产综合久久天堂| 男人和女人黄 色大片| 中文日韩精品视频在线| 成年女人下边潮喷毛片免费| 国产情侣激情在线对白| 亚洲欧美中文日韩综合| 五月婷婷综合缴情六月| 国产成人精品一区在线观看| 护士又紧又深又湿又爽的视频| 91人妻人人做人碰人人九色| 亚洲欧美日韩在线中文字幕| 五月婷婷六月丁香在线观看| 少妇熟女亚洲色图av天堂| 中文字幕人妻av不卡| 欧美日韩国产另类一区二区 | 国产a天堂一区二区专区| 91国自产精品中文字幕亚洲| 91国内视频一区二区三区| 欧美亚洲三级视频在线观看| 成人精品一区二区三区综合| 国产精品久久精品毛片| 日本人妻精品有码字幕|