當前位置:編程學習大全網 - 編程語言 - 從零開始認識Dubbo

從零開始認識Dubbo

[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增加超時時間

  • 上一篇:打不開網頁,但是能開QQ~~在線等
  • 下一篇:如何用vb給qq發送消息
  • copyright 2024編程學習大全網