Springboot2.x整合dubbo2.6
springboot整合dubbo过程踩了很多坑,现在梳理一个正确的方式:
一. pom配置:dubbo相关的依赖都统一采用alibaba的,并且需要一个nio依赖
分别是:
1. dubbo本身的jar
2. dubbo和springboot整合的jar
3. springboot读取dubbo配置的jar(我在做的时候一直报config读取不到,ben找不到之类的错误,就是因为没有这个jar)
4. nio
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.boot/dubbo-spring-boot-starter -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.spring</groupId>
<artifactId>spring-context-support</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.32.Final</version>
</dependency>
2. 在注册服务的启动类加@EnableDubbo
@EnableDubbo
@SpringBootApplication
@MapperScan(basePackages="com.csp.test.user.mapper")
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
Service声明必须是dubbo的:
import com.alibaba.dubbo.config.annotation.Service;
@Service
public class UserServiceImpl implements UserService {
}
3. 配置dubbo连接属性
# dubbo的配置 # dubbo中的服务名称 #spring.dubbo.application=user-service dubbo.application.name=user-service # dubbo的通讯协议名称 dubbo.protocol.name=dubbo #spring.dubbo.protocol.name=dubbo # zookeeper注册中心的地址 dubbo.registry.address=192.168.15.136:2181 # zookeeper的通讯协议的名称 dubbo.registry.protocol=zookeeper # dubbo的服务的扫描路径 dubbo.scan.base-packages=com.csp.imall # 设置超时时间 dubbo.consumer.timeout=600000 # 设置是否检查服务存在 dubbo.consumer.check=false
启动成功后查看dubbo-admin:

注册成功

浙公网安备 33010602011771号