節點角色說明:java
Provider: 暴露服務的服務提供方。linux
Consumer: 調用遠程服務的服務消費方。web
Registry: 服務註冊與發現的註冊中心。算法
Monitor: 統計服務的調用次調和調用時間的監控中心。spring
Container: 服務運行容器。windows
調用關係說明:tomcat
0. 服務容器負責啓動,加載,運行服務提供者。服務器
1. 服務提供者在啓動時,向註冊中心註冊本身提供的服務。mybatis
2. 服務消費者在啓動時,向註冊中心訂閱本身所需的服務。mvc
3. 註冊中心返回服務提供者地址列表給消費者,若是有變動,註冊中心將基於長鏈接推送變動數據給消費者。
4. 服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,若是調用失敗,再選另外一臺調用。
5. 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
1 搭建zookeeper消息中心
2 搭建dubbo服務端代碼
3 寫dubbo客戶端代碼
4 dubbo提供的dubbo-admin-2.5.4.war 管理控制檯
zookeeper-3.3.6.tar.gz
把zoo_sample.cfg 複製一份爲zoo.cfg,做爲默認配置文件
tickTime:這個時間是做爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。
dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
clientPort:這個端口就是客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
個人配置: 端口2181是默認配置
./zkServer.sh start 啓動zookeeper
使用netstat -lpn | grep 2181
若是有端口號, 說明已經啓動
ps: 由於我linux 是裝在虛擬機裏面, zookeer在虛擬機裏, DubboServer , DubboClient , DubboAdmin 都是在windows上, 注意要開放linux的2181端口
DubboServer段是一個web工程,服務提供者, 我這裏是dubbo和spring結合搭建.
spring的搭建過程,可參見 springmvc + mybatis配置
我這裏僅是搭建spring和dubbo的例子,使用的最少的配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="wt-dubbo-server" /> <!-- 消息中心地址 --> <dubbo:registry address="zookeeper://192.168.20.129:2181" check="false"/> <dubbo:protocol name="dubbo" port="20880" serialization="hessian2" /> <!-- 聲明接口 --> <dubbo:service interface="com.DubboServer" ref="dubboServer" /> </beans>
把server層的代碼導出jar, 後面放到dubboClient中!!
而後啓動項目
dubboClient能夠是web工程也能夠是普通的javaproject.
我也是用的spring集成,可是使用的是junit進行測試,
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="dys-client" /> <!-- 消息中心地址 --> <dubbo:registry address="zookeeper://192.168.20.129:2181" check="false"/> <!-- 聲明接口 --> <dubbo:reference id="dubboServer" interface="com.DubboServer" /> </beans>
運行成功!
把這個war包放到tomcat的webapps目錄下
1 修改tomcat的端口號不要和其餘服務衝突.
2 修改 WEB-INF 下的dubbo.properties文件
dubbo.registry.address=zookeeper://192.168.20.129:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
3 啓動tomcat,訪問.
點擊 服務治理--提供者 可看到以下, 還有一些其餘的信息,再查閱吧,暫時我也不是很清楚