Spring + Dubbo + zookeeper (linux) 框架搭建
2019獨角獸企業重金招聘Python工程師標準>>>
dubbo簡介
節點角色說明:
Provider:?暴露服務的服務提供方。
Consumer:?調用遠程服務的服務消費方。
Registry:?服務注冊與發現的注冊中心。
Monitor:?統計服務的調用次調和調用時間的監控中心。
Container:?服務運行容器。
調用關系說明:
0.?服務容器負責啟動,加載,運行服務提供者。
1.?服務提供者在啟動時,向注冊中心注冊自己提供的服務。
2.?服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
3.?注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
4.?服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
5.?服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
四個步驟
1 搭建zookeeper消息中心
2 搭建dubbo服務端代碼
3 寫dubbo客戶端代碼
4 dubbo提供的dubbo-admin-2.5.4.war 管理控制臺
一: 搭建zookeeper 消息中心
1 下載zookeeper安裝文件
????zookeeper-3.3.6.tar.gz
2 ?執行命令?tar?zxvf?zookeeper-3.4.6.tar.gz 解壓,
3 到 zookeeper-3.3.6/conf 目錄下
把zoo_sample.cfg 復制一份為zoo.cfg,作為默認配置文件
4 配置說明
tickTime:這個時間是作為 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日志文件也保存在這個目錄里。
clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
我的配置: 端口2181是默認配置
5 在zookper-3.3.6/bin目錄下執行
./zkServer.sh start 啟動zookeeper
6 驗證zookeeper是否啟動
使用netstat -lpn | grep 2181?
如果有端口號, 說明已經啟動
ps: 因為我linux 是裝在虛擬機里面, zookeer在虛擬機里, ?DubboServer , DubboClient , DubboAdmin 都是在windows上, 注意要開放linux的2181端口
二 DubboServer 工程
DubboServer段是一個web工程,服務提供者, 我這里是dubbo和spring結合搭建.
spring的搭建過程,可參見 ?springmvc + mybatis配置
我這里僅是搭建spring和dubbo的例子,使用的最少的配置
1 測試代碼編寫
2 dubbo的xml文件配置
<?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>
3 導出接口層的jar
把server層的代碼導出jar, 后面放到dubboClient中!!
然后啟動項目
三 DubboClient工程
dubboClient可以是web工程也可以是普通的javaproject.
我也是用的spring集成,但是使用的是junit進行測試,?
1 dubboclient端代碼
2 dubbo的xml配置
<?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> 3 測試運行client端代碼(zookeeper 和 dubboServer端已經啟動)
運行成功!
四 dubbo-admin-2.5.4.war 管理控制臺
把這個war包放到tomcat的webapps目錄下?
1 修改tomcat的端口號不要和其他服務沖突.
2 修改 WEB-INF 下的dubbo.properties文件
3 啟動tomcat,訪問.
點擊 服務治理--提供者 可看到如下, ? ?還有一些其他的信息,再查閱吧,暫時我也不是很清楚
轉載于:https://my.oschina.net/wangt10/blog/522799
總結
以上是生活随笔為你收集整理的Spring + Dubbo + zookeeper (linux) 框架搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 替换WordPress调用的Google
- 下一篇: linux 其他常用命令