本人之前一直在用springcloud框架實現分布式項目,看到好多公司面試都是需要dubbo+ZooKeeper實現分布式項目,面試題百度上太多了就不在講解了,今天來寫個簡單易懂的小demo,幫助初學者對dubbo+ZooKeeper有個全新的認識。
一、首先 zookeeper作為集群管理服務器
ZooKeeper定義:分布式服務框架 Zookeeper -- 用來管理分布式環境中的數據。
(1).去zookeeper官網下載安裝:https://zookeeper.apache.org/
(2).解壓到本地(根據自己情況安裝到那個盤) D:\softWare\zookeeper\zookeeper-3.4.10
(3).找到zkServer.cmd (D:\softWare\zookeeper\zookeeper-3.4.10\bin\zkServer.cmd) 雙擊運行會閃退,
這時候需要:復制conf目錄下zoo_sample.cfg文件到同目錄下,重命名為zoo.cfg,修改其中的 dataDir 和 dataLogDir 上面新建目錄的路徑

然后在雙擊zkServer.cmd,就OK了
二、開始搭建項目
(1).打開IDE創建父項目DubboProject,刪除src模塊,保留pom.xml,
然后新建三個module:
dubbo-api(對外RPC接口:里邊主要放實體和service接口) dubbo-consumer(dubbo接口消費者:里邊主要放controller層) dubbo-provicer1(dubbo接口提供者:里邊主要放mapper接口,service的實現和查詢數據庫的xml)
項目結構如下:

(2)父項目中引入三個模塊

(3) 對外提供RPC接口API的dubbo-api,可寫一個接口類和實體,實體user就不展示了(id,userName,passWord三個字段)

pom.xml展示

(4) dubbo提供者dubbo-provide,提供者的配置和dubbo配置

provide提供者的dubbo配置

然后在UserServiceImpl層,注意這個實現的service,一定是dubbo中配置的找到api中的那個包

mapper層和mapper.xml層


(5).dubbo消費者dubbo-comsumer

消費者的dubbo配置

消費者的controller層

本地請求下就OK了:localhost:8080/getAllUser
