[TOC]
1.Dubbo是什麽
Apache Dubbo 是壹款高性能Java RPC框架。
Dubbo是壹個分布式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並且本質上是個服務調用的東東, 說白了就是個遠程服務調用的分布式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊) 其核心部分包含:
2.Dubbo能做什麽
Dubbo采用全spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行加載。
3.Dubbo架構
節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務註冊與發現的註冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
調用關系說明:
4.Dubbo的使用方法
Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行加載。如果不想使用Spring配置,可以通過API的方式進行調用(註解式,不推薦使用)
下載安裝zookeeper註冊中心(不建議使用multicast)
1.Windows
下載地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下載解壓即可,進入解壓目錄運行zkServer.cmd啟動註冊服務中心
截圖:
2.MacOS
下載地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下載解壓即可,進入解壓目錄運行zkServer.sh start啟動註冊服務中心
3.Linux
下載地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下載解壓即可,進入解壓目錄運行zkServer.sh start啟動註冊服務中心
服務提供者
1.定義服務接口(該接口需單獨打包,在服務提供方和消費方***享)
DemoService.java
2.服務提供方實現接口:(對服務消費方隱藏實現)
DemoServiceImpl.java
dubbo-provider.xml:
4.加載Spring配置,啟動服務:
Provider.java:
或者使用springBoot啟動
服務消費者:
applicationContext-dubbo.xml 中註冊自己需要調用的接口。
1.通過Spring配置引用遠程服務
dubbo-consumer.xml:
2.加載Spring配置,並調用遠程服務:
Consumer.java
或者使用springBoot啟動
並添加對應的restful接口提供接口訪問
修改對應index頁面
3.dubbo管理頁面:
啟動後訪問 http://localhost:8080/dubbo-admin/
輸入賬號密碼root/root
應用頁面:
提供者頁面:
消費者頁面:
服務頁面:
測試是否成功,只要看狀態是否正常,就ok了 ....
provider-log:
5.使用Dubbo可能遇到的問題
1、org.springframework.beans.factory.BeanCreationException
原因分析:
解決方案
2、org.apache.dubbo.rpc.RpcException
原因分析
解決方案
可能是因為providers沒有啟動,或者是provider對應暴露的服務被禁用,啟動providers或者解除禁用即可
3、java.lang.IllegalStateException
原因分析
解決方案
總結以上兩點,通俗點講,就是重啟了工程(可能是因為直接修改代碼,工程reload了), 並且,連過了數據庫(登錄等),才出現了上述報錯信息。原因是因為在tomcat重啟的時候,之前的tomcat的線程還沒有完全關閉,最新啟動tomcat就會報這個異常。
4、org.apache.dubbo.remoting.TimeoutException
原因分析
解決方案
在dubbo-provider.xml增加超時時間