关于canal消费者中引入dubbo消费者后调用dubbo接口为null问题

2020-09-18 11:32:13 浏览数 (1)

问题描述:

原来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)

0 人点赞