springboot整合dubbo

820 阅读3分钟
目前在很多项目有使用了分布式框架dubbo,而在很多企业,springboot框架 也成为了构建项目时的首选项,现在就用springboot来整合dubbo。

1.先搭建dubbo环境,这个可以在网上搜索或使用项目一的镜像资源

2.创建工程

2.1创建父工程springboot-dubbo-parent,打包方式:pom

添加依赖:

[XML]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<curator-framework.version>4.0.1</curator-framework.version>
<zookeeper.version>3.4.13</zookeeper.version>
<dubbo.starter.version>0.2.0</dubbo.starter.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${dubbo.starter.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

2.2在springboot-dubbo-parent创建子两个子module,分别是springboot-dubbo-interface(jar工程)和springboot-dubbo-service(jar工程),这两个工程中springboot-dubbo-interface主要写接口,springboot-dubbo-service主要写接口的实现类,在springboot-dubbo-service中加入springboot-dubbo-interface的依赖。

[XML]
纯文本查看
复制代码
1
2
3
4
5
6
7
<dependencies>
<dependency>
<groupId>com.springboot</groupId>
<artifactId>springboot-dubbo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>

3.在springboot-dubbo-interface/src/main/java/com.springboot.dubbo.service下创建接口HelloBootDubboService.java

[Java]
纯文本查看
复制代码
1
2
3
4
public interface HelloBootDubboService {
public String sayHello();
}

4.在springboot-dubbo-service/src/main/java/com.springboot.dubbo.service.impl下创建HelloBootDubboServiceImpl.java

[Java]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
@Service
public class HelloBootDubboServiceImpl implements HelloBootDubboService {
@Override
public String sayHello() {
System.out.println("=========进入服务========");
return "服务调用成功!";
}
}

5.在springboot-dubbo-service/src/main/java/com.springboot.dubbo.service.impl下创建启动类App.java

[Java]
纯文本查看
复制代码
1
2
3
4
5
6
7
@EnableDubbo
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}

6.在springboot-dubbo-service/src/main/resources配置application.yml文件

[XML]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
server:
port: 8080
dubbo:
application:
name: testBoot
#表示采用dubbo协议
protocol:
name: dubbo
#端口号
port: 20880
registry:
address: zookeeper://192.168.12.131:2181

运行启动类出现下面效果且后续不报错,说明整合成功,在zookeeper注册中心中能够找到服务


7.创建springboot-dubbo-web工程,打包方式jar,加入springboot-dubbo-interface依赖,在src/main/java/com.springboot.dubbo.controller下创建HelloController.java

[Java]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
@RestController
public class HelloController {
@Reference
private HelloBootDubboService helloBootDubboService;
@RequestMapping("/hello")
public String sayHello(){
return helloBootDubboService.sayHello();
}
}

8.在springboot-dubbo-web/src/main/java/com.springboot.dubbo.controller下创建启动类App.java

[Java]
纯文本查看
复制代码
1
2
3
4
5
6
7
@EnableDubbo
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}

9.在springboot-dubbo-web/src/main/resources配置application.yml文件

[XML]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
9
server:
port: 8082 #tomcat的端口号
dubbo:
application:
name: controller #注册服务名称
registry:
address: zookeeper://192.168.12.131:2181
consumer:
timeout: 100000 #调用服务的超时时间

10.运行启动类出现springboot标志之后,在监控中心查看消费者,发现已经成功


11.在浏览器中输入localhost:8082/hello

更多技术资讯可关注:gzitcast