maven+springmvc+dubbo+zookeeper
阿新 • • 發佈:2019-02-19
為什麼要用dubbo?
還是讓官方來解釋吧:
一般 nginx+tomcat
| ----> Controller1--------->service1
請求----->nginx |
|----->Controller2--------->service2
請求進了Controller 就只有一條路可以走了
使用dubbo後
| ------->service1
請求------>Controller----> |
|---------->service2
簡單的說 也就是 一個Contoller 我可以部署多個 service 。
一般的mvc專案 包含 Controller、Servicei、ServiceImpl、dao三層
使用doubbo我們可以把專案拆分:
Controller 作為 “消費著” 一個專案
ServiceImpl +dao 作為 “提供者” 一個專案
Servicei “介面” 可以作為一個專案
我們可以部署多個“提供著”。。。。。。。。。。。。。。。。。。。
Zookeeper作為Dubbo服務的註冊中心,Dubbo原先基於資料庫的註冊中心,沒采用Zookeeper,Zookeeper一個分散式的服務框架,是樹型的目錄服務的資料儲存,能做到叢集管理資料 ,這裡能很好的作為Dubbo服務的註冊中心,Dubbo能與Zookeeper做到叢集部署,當提供者出現斷電等異常停機時,Zookeeper註冊中心能自動刪除提供者資訊,當提供者重啟時,能自動恢復註冊資料,以及訂閱請求。我們先在linux上安裝Zookeeper,我們安裝最簡單的單點
Windons 安裝Zookeeper
1,Zookeeper 官網下載windons 版本,(不會下載百度)
單機安裝非常簡單,只要獲取到 Zookeeper 的壓縮包並解壓到某個目錄如
開啟目錄機構為:
Zookeeper 的啟動指令碼在 bin 目錄下,Windows 下的啟動指令碼是 zkServer.cmd。
在你執行啟動指令碼之前,還有幾個基本的配置項需要配置一下,Zookeeper 的配置檔案在 conf 目錄下,這個目錄下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是將 zoo_sample.cfg 改名為 zoo.cfg,因為 Zookeeper 在啟動時會找這個檔案作為預設配置檔案。下面詳細介紹一下,這個配置檔案中各個配置項的意義。
開啟以後
1 2 3 4 5 6 7 8 9 10 11 12 |
#
The number of milliseconds of each tick
tickTime=2000
#
The number of ticks that the initial
#
synchronization phase can take
initLimit=10
#
The number of ticks that can pass between
#
sending a request and getting an acknowledgement
syncLimit=5
#
the directory where the snapshot is stored. dataDir=/tmp/zookeeper
#
the port at which the clients will connect
clientPort=2181
|
- tickTime:這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
- dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。
- clientPort:這個埠就是客戶端連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求。
1 2 3 |
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
|
address:zookeeper 的ip地址 後面是埠號 ,和zookeeper中配置的埠號一樣
修改完成後需要一個tomcat 開啟tomcat \webapps\ROOT 目錄 ,此目錄放置的是tomcat的首頁,刪除所有的檔案,將解壓後修改好的所有的dubbo-admin 裡的檔案複製到 \webapps\ROOT中,
此時我們已經配置好了。現在可以啟動tomcat了 (主意:在啟動tomcat之前要先啟動zookeeper ,啟動zookeeper前面有介紹)。 啟動tomcat之後 在瀏覽器輸入 http://localhost:8080 (我的是8083) 進入dubbo管控臺的主頁
(備註:使用jdk1.8 tomcat啟動可能會出錯 有關 URI。。。。 的錯誤。我最後換成1.7了)
使用者名稱和密碼就是dubbo.properties 中配置的 預設的是 使用者名稱 :root, 密碼:root
輸入使用者名稱和密碼之後 進入首頁
當然現在還沒有 消費者 和 提供者 現在我們來開發 消費者 和 提供者 配置 好 zookeeper之後 搭建 maven+springmvc+dubbo環境 新建3個maven專案 1,test-dubbo-provider ,java專案,作為提供者,serviceImpl 和dao 層 2,test-public-interface ,java專案,存放公共的介面 ,servicei 是service的介面 (備註:1要依賴2, 3也要依賴2) 3,test-web-consumer,web專案,存放 Controller 和 頁面 首先我們來開發 服務的提供者也就是 test-dubbo-provider ,目錄結構為 ApplicationContent-dubbo.xml dubbo服務的配置檔案(名字隨意) (待會再介紹) ApplicationContent.xml spring的配置檔案 這兩個配置檔案 必須要放到 MATE-INF/spring/下面 (原因後面再說) UserServiceImpl.java 藉口的實現類1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |