初識dubbo之暴露和引用服務(三)


            前面已經介紹了dubbo是什么,用來做什么,以及監控中心zookeeper的安裝,接下來講講將其應用到tomcat工程項目中……

(一)項目結構展示

        1、 兩個maven同級項目,一個發布服務,一個使用……

 

(二)准備工作,添加依賴、約束文件

        1、分別對兩個工程添加依賴,

             這里注意,因為加入dubbo依賴,會傳遞其依賴的spring2.x的版本依賴,而本maven工程已經添加spring4.x的依賴,所以這里要除去……

    

        2、約束

(三)開啟zookeeper監控中心服務

 

(四)配置文件以暴露和引用服務

        1、service服務層發布服務

              第一項是所起的名字,接着是注冊中心服務的主機地址及端口,第三項是暴露服務的端口,

              如果還有其他工程同時發布服務,那么要另外使用別的端口號,最后是發布的服務的接口規范,要提供實現類以引用對象。。。

        2、web表現層引用服務

              第一項名字,接着zookeeper注冊中心地址,最后是要引用的服務。。。

 

(五)進行網絡傳輸的pojo要實現序列化接口

          implements Serializable

(六)重新將maven工程安裝到本地倉庫

          maven install

(七)tomcat插件的測試使用

          將表現層工程pom文件改造,端口不要同服務層的8080,運行時,先運行服務層再運行表現層,tomcat7:run。。。

 

        運行結果:

 

(八)可能出現的異常

           控制台打印:com.alibaba.dubbo.remoting.TimeoutException

           頁面打印: Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method getItemById in the service cn.e3mall.service.ItemService. Tried 3 times of the providers [192.168.244.1:20880] (1/1) from the registry 192.168.244.128:2181 on the consumer 192.168.244.1 using the dubbo version 2.5.3. Last error is: Invoke remote method timeout. 

            解決: 在服務和表現層的spring配置文件中加入如下:

           其實同個問題可能導致的原因有千百種,這里我只是利用此種方法而又剛好解決了而已……

 

 

      最后,

 

              由於使用不多,接觸少,如有錯漏的地方歡迎指出、批評,多謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM