问题描述:
原来spring boot 2.x canal服务引入dubbo服务消费者,配置都配过了,发现dubbo消费者每次请求都是报空指针异常。如下图
项目结构:
spring 2.x、canal消费者、kafa集成dubbo消费者服务
排查如下:
首先查看引入配置如下:
引入dubbo包
代码语言:javascript复制<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
在配置文件中配置
代码语言:javascript复制# Base packages to scan Dubbo Components (e.g., @Service, @Reference)
dubbo.scan.basePackages= com.xx.canal.xx
# Dubbo Config properties
dubbo.application.name = canalconsumer
## ProtocolConfig Bean
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=29952
dubbo.application.qos-enable=false
dubbo.provider.timeout=3000
dubbo.provider.threads=2000
dubbo.registry.protocol=zookeeper
dubbo.registry.address=xxx
在application添加dubbo注解
代码语言:javascript复制@SpringBootApplication
@EnableDubbo
@EnableDubboConfig
在调用包引入@Reference
代码语言:javascript复制@Reference
private IPopFlowConfigEsService popFlowConfigEsService;
问题寻找过程:
首先按照相关的网上尝试
将配置文件改成dubbo.xml
将注解改成其他
....
后面发现
原来dubbo
需要在@@Reference加上版本号
代码语言:javascript复制@Reference(version="1.0.0",timeout=5000)