0%

springboot+dubbo简单实例

前言:springboot+dubbo一个非常简单的例子

dubbo架构

image-20200102004136726

安装zookeeper

此处略,见其他笔记

添加安全组规则

本人使用到了阿里云服务器,需要添加规则,当然也可以虚拟机
image-20200102004218424

项目目录

  • dubbo-interface:提供接口
  • dubbo-provider:生产者
  • dubbo-consumer:消费者

image-20200102004248538

dubbo-interface

创建 Maven 项目

image-20200102004259197

image-20200102004306873

创建接口类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @author shency
* @description: TODO
* @date: 2019/10/14
*/
public interface HelloService {

/**
* helloWorld
* @param name
* @return String
*/
public String helloWorld(String name);
}
将项目打成 jar 包供其他项目使用

使用Maven install 下载到本地仓库

image-20200102004320097

dubbo-provider

创建 springboot 项目

image-20200102004330585

记得勾选web

image-20200102004339378

maven依赖

加入 dubbo 、zookeeper以及接口的相关依赖 jar 包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!--引入自定义接口的依赖-->
<dependency>
<groupId>com.husky</groupId>
<artifactId>dubbo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--引入dubbo的依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- 引入zookeeper的依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
配置

在 application.properties 配置文件中配置 dubbo 相关信息

1
2
3
server.port=8333
spring.dubbo.application.name=dubbo-provider
spring.dubbo.application.registry=zookeeper://服务器IP:2181
实现接口类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
import service.HelloService;

/**
* @author shency
* @description: TODO
* @date: 2019/10/14
*/
@Component
@Service
public class HelloServiceImpl implements HelloService {
@Override
public String helloWorld(String name) {
return "Hello world " + name;
}
}
启动类

使用@EnableDubboConfiguration注解

1
2
3
4
5
6
7
8
9
10
11
12
13
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubboConfiguration
public class DubboProviderApplication {

public static void main(String[] args) {
SpringApplication.run(DubboProviderApplication.class, args);
}

}

dubbo-consumer

创建 springboot 项目

同上

Maven依赖

同上

配置

在 application.properties 配置文件中配置 dubbo 相关信息,跟上文一样,只需要修改server.port

1
2
3
server.port=8330
spring.dubbo.application.name=dubbo-provider
spring.dubbo.application.registry=zookeeper://服务器IP:2181
调用接口类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import service.HelloService;

/**
* @author shency
* @description: TODO
* @date: 2019/10/14
*/
@RestController
public class HelloController {
@Reference
private HelloService helloService;

@RequestMapping("/hello")
public String hello() {
System.out.println(helloService.helloWorld("husky"));
return helloService.helloWorld("husky");
}
}
SpringBoot启动类

使用@EnableDubboConfiguration注解

1
2
3
4
5
6
7
8
9
@SpringBootApplication
@EnableDubboConfiguration
public class DubboConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(DubboConsumerApplication.class, args);
}

}

测试

启动zookeeper和dubbo-provider、dubbo-consumer两个项目

访问浏览器http://localhost:8330/hello

image-20200102004441578

-------------本文结束感谢您的阅读-------------