初学dubbo踩到的坑

最近在学习dubbo框架,在使用springboot整合dubbo的项目中遇到了一些问题,因此做一些记录,避免以后遇到同样的问题。

问题一:服务提供者项目启动后,服务没有注册服到zookeeper(zk已安装成功并且正常启动),启动日志中没有任何dubbo的日志输出,如图:

 

初学dubbo踩到的坑_第1张图片

springboot版本为:


    org.springframework.boot
    spring-boot-starter-parent
    1.5.9.RELEASE
 

-------------------

出现问题的原因:

pom文件中添加的依赖不全,添加的dubbo依赖如下:


         com.alibaba
         dubbo
          2.6.2
     

 

解决方案:使用springboot提供的dubbo启动器,里面包含所有dubbo需要的依赖(没有包含zkclient,需要手动添加),如:


        com.alibaba.boot
        dubbo-spring-boot-starter
        0.1.0

再次启动服务提供者的项目,这时启动日志已经有了dubbo的日志输出:如图

初学dubbo踩到的坑_第2张图片

服务也成功的注册到了zookeeper,如图:

初学dubbo踩到的坑_第3张图片

 

 

启动消费者项目时报错,信息如下:

一、Dubbo Config was overridden by externalized configuration {dubbo.application=id:dubbo-web name:dubbo-web, dubbo.protocal=id:dubbo name:dubbo port:666, dubbo.registry=id:my-reg address:zookeeper://192.168.75.128:2181}

二、Binding to target com.alibaba.boot.dubbo.autoconfigure.SingleDubboConfigBindingProperties@3e134896 failed:

Property: dubbo.application
Value: id:dubbo-web name:dubbo-web
Reason: Failed to convert property value of type 'java.lang.String' to required type 'com.alibaba.dubbo.config.ApplicationConfig' for property 'application'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [@org.springframework.boot.context.properties.NestedConfigurationProperty com.alibaba.dubbo.config.ApplicationConfig]

第一行的配置信息格式输出为:dubbo.application=id:dubbo-web 正确的格式输出应该是 dubbo.application.id=dubbo-web

导致该问题的出现原因是application.yml配置格式出错

dubbo:
   application:
      id:dubbo-web
      name:dubbo-web

值和冒号(:)之间要有一个空格,如:

dubbo:
   application:
      id: dubbo-web
      name: dubbo-web

重新启动项目成功,dubbo远程调用成功,如图:

初学dubbo踩到的坑_第4张图片

本次项目代码下载链接:https://download.csdn.net/download/kangyuan520/10558698

本次springboot整合dubbo项目成功运行!end!

 

 

 

 

你可能感兴趣的:(分布式)