初学dubbo踩到的坑
最近在学习dubbo框架,在使用springboot整合dubbo的项目中遇到了一些问题,因此做一些记录,避免以后遇到同样的问题。
问题一:服务提供者项目启动后,服务没有注册服到zookeeper(zk已安装成功并且正常启动),启动日志中没有任何dubbo的日志输出,如图:
springboot版本为:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
-------------------
出现问题的原因:
pom文件中添加的依赖不全,添加的dubbo依赖如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
解决方案:使用springboot提供的dubbo启动器,里面包含所有dubbo需要的依赖(没有包含zkclient,需要手动添加),如:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.1.0</version>
</dependency>
再次启动服务提供者的项目,这时启动日志已经有了dubbo的日志输出:如图
服务也成功的注册到了zookeeper,如图:
启动消费者项目时报错,信息如下:
一、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.alib[email protected]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远程调用成功,如图:
本次项目代码下载链接:https://download.****.net/download/kangyuan520/10558698
本次springboot整合dubbo项目成功运行!end!