如今
Spring Boot在微服务领域已十分风靡,开箱即用的特性,简化了很多开发工作。而Dubbo在2017年重新得到维护以后,社区逐渐活跃,Dubbo RPC十分优秀,本文我们将通过一个例子来构建一个基于Spring Boot的Dubbo微服务工程。
Dubbo Spring Boot Starter 项目
我们在采用
Dubbo作为 微服务框架时,可以通过依赖这个项目来轻松整合SpringBoot

上面是 Dubbo Spring Boot 工程地址 。Dubbo Spring Boot 工程致力于简化 Dubbo RPC 框架在 Spring Boot 应用场景的开发。同时也整合了 Spring Boot 特性:
SpringBoot Dubbo 项目实战
我们将实现一个简单的基于SpringBoot 和 Dubbo 的微服务例子来进行讲解。
项目采用多模块的形式打包。分为如下三个工程:
- dubbo-boot-api
统一使用的API工程,提供给生产者和消费者,包括服务接口等,实体模型等。 - dubbo-boot-consumer
服务消费端,该工程将会提供web服务,并调用 Dubbo 提供的微服务。 - dubbo-boot-provider
服务提供方,提供服务供消费者进行调用
POM 依赖
项目根
POM文件 需要依赖 SpringBoot 的 Parent 工程 作为 父工程以方便管理Spring的版本,我们采用的版本号为Spring Boot 2.0.0.RELEASE
1 | <parent> |
服务提供者 (
dubbo-boot-provider) 、服务消费者 (dubbo-boot-consumer) 都需要依赖dubbo整合Spring的dubbo-spring-boot-starter工程,以及spring-boot-starter-web,通过web作为服务启动运行载体。
1 | <!-- Dubbo 整合 Boot Dubbo 依赖 --> |
API 工程 dubbo-boot-api
api工程主要提供实体类和公用服务接口,
provider、consumer都会依赖它
实体类 City
1 | public class City implements Serializable { |
服务接口 CityService
1 | public interface CityService { |
Provider 服务提供工程 dubbo-boot-provider
服务提供实现 CityServiceImpl
1 |
|
启动类
AppProvider使用非
web的形式启动SpringBoot容器,提供Dubbo Rpc服务
1 |
|
application.properties
1 | # Spring boot application |
Consumer 消费者工程 dubbo-boot-provider
Spring BootController类,提供Rest接口。引用Dubbo服务接口CityService
1 |
|
启动类
提供
web服务供前端调用
1 |
|
application.properties
本例子没有采用注册中心,而是通过本地
url互相直连服务端进行调用。
1 | spring.application.name=dubbo-boot-consumer |
测试
分别运行启动服务端(AppServer) 和消费端(AppConsumerServer) 类。然后打开浏览器访问 localhost:8080/hello
结果显示已经调用成功。整个执行链为,前端访问 url 调用消费端 Spring Rest接口,Controller 里通过 Dubbo Rpc 调用 服务端提供的服务,然后返回。
总结
采用 Spring Boot 工程,引入 Dubbo 整合 Spring Boot 的 依赖,将会使我们非常简单轻松的使用 Dubbo 来提供微服务。我们可以充分利用 Spring Boot 的 注解驱动、自动装配、外部化配置、Actuator 监控等特性,来轻松管理基于Dubbo 的微服务。
社区提供的 dubbo-spring-boot-starter 工程 整合了与 Spring Boot 这些自动配置、依赖等。所以下一步我们将会研究 它是如何实现与 Spring Boot 无缝整合的。
推荐
最后推荐一下本人微信公众号,欢迎大家关注。

原文链接: https://www.317318.xyz/p/b7f8f92f.html
版权声明: 转载请注明出处.