Dubbo

Dubbojava

1、Dubbo的簡介(原先是阿里的產品,後來成了Apache)
一、Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC(遠程過程調用)遠程服務調用方案,以及SOA(面向服務的架構)服務治理方案。你們一塊兒幹同一個活:集羣  你們一塊兒幹不一樣的活:分佈式
Dubbo架構圖


linux

dubbo執行流程
一、首先服務提供方經過dubbo容器來啓動
二、而後去註冊中心去註冊服務提供方的服務
三、服務消費方想去調用服務提供方,必須先得註冊中心訂閱服務,註冊中心會給服務消費方一個通知(服務的代理對象)
四、而後拿着代理對象的地址真正的去調用服務提供方web

2、Registry 註冊中心
一、 Registry 註冊中心 
1.1 註冊中心是整個Dubbo架構重要部分,是Provider和Customer橋樑(服務提供方 服務消費方)
1.2 Dubbo支持不少種註冊中心類型(Multicast註冊中心、Zookeeper註冊中心、Redis註冊中心、Simple註冊中心)
1.2.1 Zookeeper 註冊中心。從Dubbo 2.3.3 開始支持。支持基於網絡的集羣方。也是官方推薦的方式,可是穩定性受限Zookeeper的穩定性 
1.2.2 Multicast註冊中心,去中心化註冊中心,不須要單獨單機註冊中心,只適用於小型應用或測試環境。除此以外還有Redis註冊中心和Simple註冊中心. 
三、Zookeeper 簡介 
3.1 ZooKeeper是一個開放源碼的分佈式應用程序協調服務組件。是Hadoop的一個子項目
3.2 特色:具備高可靠性,可擴展性,分佈式,可配置的協調機制
3.3 做用 
3.3.1 數據發佈與訂閱(註冊中心),Dubbo應用此特性 
3.3.2 集羣管理與Master選舉 ,Solr集羣應用此特性 
3.3.3 命名服務(Naming Service) 
3.3.4 分佈式通知/協調 
3.3.5 負載均衡 
3.3.6 分佈式鎖 
3.3.7 分佈式隊列 
3.4 底層使用java編寫.因此使用Zookeeper時須要配置JDK環境變量spring

3、zookeeper安裝
下載地址:zookeeper.apache.org 
一、修改/etc/profile,配置jdk環境變量 
二、安裝Zookeeper單機版步驟 
三、上傳Zookeeper壓縮包,並解壓 
mkdir /usr/local/zookeeper 
tar zxvf zookeeper-3.4.6.tar.gz -C /usr/local/zookeeper/
四、 在解壓後的文件夾中新建data文件夾。做爲zookeeper數據存放文件夾
mkdir data 
全路徑:/usr/local/zookeeper/zookeeper-3.4.12/data
五、 進入zookeeper的conf文件夾中把zoo_sample.cfg複製一份命名爲zoo.cfg 
cp zoo_sample.cfg zoo.cfg

六、修改zoo.cfg中dataDir的值爲data文件夾的路徑
[root@localhost conf]# vim zoo.cfg 
dataDir=/usr/local/zookeeper/zookeeper-3.4.12/data

七、進入Zookeeper的bin文件夾(/usr/local/zookeeper/zookeeper-3.4.12/bin),使用zkServer.sh啓動和查看狀態
八、 ./zkServer.sh start 啓動命令

九、 ./zkServer.sh status  查看狀態

查看狀態時顯示下面效果表示安裝並啓動成功,其中Mode:standalone表示單機版 
中止zookeeper服務:[root@localhost bin]# ./zkServer.sh stopapache

4、dubbo協議
服務提供者經過指定的協議來暴露服務。協議由提供方指定,消費方被動接受。推薦使用dubbo協議,除此以外還支持RMI 協議和Hessian 協議
dubbo協議的特色及配置:
dubbo缺省協議採用單一長鏈接和NIO異步通信,適合於小數據量大併發的服務調用,以及服務消費者機器數遠大於服務提供者機器數的狀況
dubbo缺省協議不適合傳送大數據量的服務,好比傳文件,傳視頻等,除非請求量很低。
配置:<dubbo:protocol name="dubbo" port="20880" />vim

5、dubbo開發基礎代碼
一:配置式開發
服務提供方(provider)[配置式開發]
1.新建Maven Project,命名爲dubbo-provider,其中Packaging方式選擇jar便可.Dubbo是不依賴於web容器
2.配置provider的pom.xml文件(配置基本的依賴gav:dubbo依賴、zookeeper客戶端、spring-context)
由於Dubbo須要在zookeeper中進行註冊,須要上傳數據給zookeeper,因此須要客戶端功能.須要下載zkClient

3.新建實體類,實現Serializable接口(pojo)
4.新建service接口和service接口的實現類
5.新建Spring配置文件(約束頭信息可在官方文檔User Guide中查找,官方文檔裏的-換成英文的)
配置式開發的spring配置文件(spring配置文件路徑classpath:/META-INF/spring/*.xml)

spring-provider配置文件的頭信息及須要配置的五項基本內容

Maven項目結構一覽(配置式開發dubbo-provider)

啓動dubbo-provider =>使用Dubbo的Main類
windows

啓動成功截圖

服務消費方(consumer)[配置式開發]
1.pom.xml依賴 =>跟服務提供方保持一致
2.dubbo-consumer的配置文件
<!-- 配置應用名稱 -->
<dubbo:application name="dubbo-consumer"/>
<!-- 配置註冊中心地址 -->
<dubbo:registry protocol="zookeeper" address="192.168.199.83:2181"></dubbo:registry>
<!-- 聲明調用服務接口 (調用的服務提供方的暴露出來的service接口)-->
<dubbo:reference id="peopleProviderService" interface="com.boom.service.PeopleProviderService"></dubbo:reference>
3.service接口和service實現類的代碼(沒用上)
4.測試類
瀏覽器

Maven項目結構一覽(配置式開發dubbo-consumer)
tomcat

測試總結:
網絡

二:註解式開發(service )
服務提供方(provider)[註解式開發]
1.在service實現類上加上service註解,表示當前類對外提供遠程服務

2.修改dubbo-provider.xml

服務消費方(consumer)[註解式開發]
1.修改dubbo-consumer.xml

2.修改PeopleConsumerServiceImpl

3.修改測試類

服務消費方(consumer)[註解式開發]修改結束

6、registry可視化管理界面
一、把dubbo-admin-2.5.3.war粘貼到tomcat中(windows下或linux下均可以)
二、啓動tomcat,而後關閉tomcat(經過tomcat解壓該war包),並刪除webapps中dubbo-xxx.war(若是不刪則啓動後從新覆蓋)
三、修改dubbo-admin-2.5.3/WEB-INF/dubbo.properties
第一行須要改寫成本身Zookeeper的地址及端口
第二行是管理員root的密碼爲root
第三行是用戶guest的密碼爲guest

四、關閉防火牆或放行8080端口,啓動tomcat。瀏覽器訪問。訪問默認用戶名和密碼:root/root (不要忘記啓動zookeeper)

相關文章
相關標籤/搜索