Spirng Boot 整合 Dubbo 简单示例
预先准备条件
- JDK 1.8
- Maven
- IDEA
- Zookepper(我用的是装在云服务器上的,作为Dubbo中服务的注册中心)
项目预览
新建 Maven 项目 springboot-dubbo。
父项目中可直接删除src文件夹。
新建子模块 dubbo-api,只需要是一个 Maven 项目即可。
在该子模块中新建包 com.cgh.dubbo.api.service。
新建一个接口 DemoService。
在接口中声明一个 sayHello() 方法。
1 | package com.cgh.dubbo.api.service; |
新建子模块 dubbo-provider,是一个Spring Boot项目,在其中为 dubbo-api 模块中声明的 service提供具体的实现,并通过 Dubbo 的 @Service 注解将实现的服务发布到 Dubbo 中。
创建项目时勾选上 Web。
添加依赖:引入 Dubbo 和 dubbo-api 模块(由于较高版本的 Dubbo 不导入后面两个依赖可能会报错,因此导入)。
1 | <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo --> |
在 application.properties 中配置必要的几项配置。
1 | provider = |
在启动类 ProviderApplication 中加上 @EnableDubbo 注解,开启 Spring Boot 对 Dubbo 的支持。
新建包 service.impl 来实现 dubbo-api 模块中接口声明的方法。
新建类 DemoServiceImpl,@Service 注解是 Dubbo 中的,不要引用错了,在该注解中指定了服务的版本号为我们在配置文件中自定义的属性。
1 | package com.cgh.dubbo.provider.service.impl; |
新建子模块 dubbo-consumer,是一个 Spring Boot 项目,作为服务消费者,消费服务提供模块 dubbo-provider 提供的服务。
创建项目时勾选上 Web。
添加依赖:引入 Dubbo 和 dubbo-api 模块(由于较高版本的 Dubbo 不导入后面两个依赖可能会报错,因此导入)。
1 | <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo --> |
在 application.properties 中配置必要的几项配置。
1 | consumer = |
在启动类 ProviderApplication 中加上 @EnableDubbo 注解,开启 Spring Boot 对 Dubbo 的支持。
新建包 controller 作为访问入口。
新建类 DemoController,通过 @Reference 注解从 Dubbo 中引入需要的服务,在该注解中指定了服务的版本号为我们在配置文件中自定义的属性。
1 | package com.cgh.dubbo.consumer.controller; |
启动 Zookeeper 服务。
我的服务器是 CentOS 7。
1 | # 进入到目录 |
依次启动 dubbo-provider 和 dubbo-consumer。
启动 dubbo-provider。
启动 dubbo-consumer。
都启动成功后,在浏览器中输入 http://127.0.0.1:8082/say/cgh 查看效果。