• 初识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配置文件中加入如下:

               其实同个问题可能导致的原因有千百种,这里我只是利用此种方法而又刚好解决了而已……

          最后,

                  由于使用不多,接触少,如有错漏的地方欢迎指出、批评,多谢!

  • 相关阅读:
    【ELK】重置 elasticsearch 的超管 elastic 账号密码
    python两种获取剪贴板内容的方法
    python创建列表和向列表添加元素方法
    7道Python函数相关的练习题
    Python中的那些“坑”
    Python基础教程:copy()和deepcopy()
    Python教程:optparse—命令行选项解析器
    Python教程:面向对象编程的一些知识点总结
    第一个pypi项目发布成功
    一个Markdown文件处理程序
  • 原文地址:https://www.cnblogs.com/panshu-1234/p/9740153.html
Copyright © 2020-2023  润新知