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