本篇文章主要講述項目搭建過程,不會涉及過多的基礎知識,本項目是作者對前段時間學習的一個總結,主要使用到技術有:maven父子工程、springboot、mybatis、dubbo、zookeeper、使用aop記錄每個service服務方法的入參、方法名稱、調用時長、出參到日志文件等,絕對是一個入門的好案列。
1.dubbo架構
節點角色說明
節點 | 角色說明 |
---|---|
Provider |
暴露服務的服務提供方 |
Consumer |
調用遠程服務的服務消費方 |
Registry |
服務注冊與發現的注冊中心 |
Monitor |
統計服務的調用次數和調用時間的監控中心 |
Container |
服務運行容器 |
調用關系說明
- 服務容器負責啟動,加載,運行服務提供者。
- 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
- 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
- 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基於長連接推送變更數據給消費者。
- 服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
- 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鍾發送一次統計數據到監控中心。
健壯性
- 監控中心宕掉不影響使用,只是丟失部分采樣數據
- 數據庫宕掉后,注冊中心仍能通過緩存提供服務列表查詢,但不能注冊新服務
- 注冊中心對等集群,任意一台宕掉后,將自動切換到另一台
- 注冊中心全部宕掉后,服務提供者和服務消費者仍能通過本地緩存通訊
- 服務提供者無狀態,任意一台宕掉后,不影響使用
- 服務提供者全部宕掉后,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復
更多的dubbo使用說明,請參見dubbo官方文檔說明
http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html
2.zookeeper安裝 - windows安裝
zookeeper下載地址:https://pan.baidu.com/s/1a5w9R6X-seoYCBbyxeA5vA 提取碼: 64i3
1.把下載文件解壓到D盤(其他盤也可以,作者的是解壓到D盤)
2.打開zookeeper-3.4.5目錄
3.在該目錄里新建兩個文件夾:data、log
4.點擊conf目錄,復制zoo_sample.cfg文件到該目錄,並修改復制后的文件名字為:zoo.cfg
5、打開zoo.cfg文件,把步驟3創建的data、log路徑賦值給dataDir和dataDirLog,如下所示(這是作者創建的額data、log目錄):
dataDir=D:\\java\\zookeeper-3.4.5\\zookeeper-3.4.5\\data
dataDirLog=D:\\java\\zookeeper-3.4.5\\zookeeper-3.4.5\\log
6、找到bin目錄,雙擊zkServer.cmd,即可啟動zookeeper服務,啟動成功如下如所示
3.項目框架
項目采用maven父子工程的模式進行管理,如下圖所示
-
dubbo-demo-master為父工程,管理其他子工程。
-
dubbo-demo-model為實體層,主要用來定義實體、DTO等數據對象
-
dubbo-demo-api為接口層,單獨抽出來一層,可以提供其他項目引用,該層依賴dubbo-demo-model
-
dubbo-demo-service為服務層,實現dubbo-demo-api里定義的接口,該層依賴dubbo-demo-api、dubbo-demo-model,zookeeper
-
dubbo-demo-web為UI層,主要定義各種Controller,該層依賴dubbo-demo-api、dubbo-demo-model、zookeeper
下一篇文章會介紹api、service層的代碼實現,如何通過dubbo把服務發布出去。
出處: https://www.cnblogs.com/lc-chenlong
如果喜歡作者的文章,請關注“寫代碼的猿”訂閱號以便第一時間獲得最新內容。本文版權歸作者所有,歡迎轉載
