Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

记录一次springboot和dubbo的整合工作,网上的资料太多、太杂,而dubbo这两年又经历了一些大的改变,导致搭建这个示例系统踩了很多坑,在此做个简单记录。

系统概述

关于dubbo和springboot的介绍就不再啰嗦,到处都是资料。本系统搭建的目的是能够使用最新版的springboot2.x以及dubbo2.5+搭建起完整系统,同时包括了mybatis操作mysql数据库,算是一个正式系统的第一步工作吧。

本文示例代码已上传到github:
https://github.com/zhouyc/sharecode

Springboot和dubbo的整合示例

系统搭建前,先安装个可用的zookeeper服务,单机版就可以了,不会的自己查,这里不介绍了。

系统肯定采用maven管理,此演示系统分三部分:

1、 sd-iservice:公用接口部分,这是dubbo发布服务和使用服务公用的部分,用来定义服务接口,同时我把公用的model类也放在此系统中了(也可以单独创建个项目)

2、 sd-service:dubbo发布的服务(生产者),或者叫服务接口实现,还包括了mybatis的mapper层,service层和mapper层是否需要再分离,根据自己的需要

3、 sd-web:dubbo服务的消费者,用来调用生产者的服务接口,同时也包括了视图层,主要是controller

Springboot和dubbo的整合示例

sd-iservice搭建

Springboot和dubbo的整合示例

1、 创建普通maven项目,因为此为接口层,不需要实现代码逻辑,所以pom.xml中不需要添加任何maven依赖(实际根据自己的业务增加),默认的junit可有可无

Springboot和dubbo的整合示例

2、 创建接口IUserService.java,内容如下:

Springboot和dubbo的整合示例

3、 创建对应数据库的Model类UserModel.java,内容如下(getter/setter方法省略了):

Springboot和dubbo的整合示例

4、 使用maven执行clean install命令,安装到本地仓库

Springboot和dubbo的整合示例

5、 公用接口完成了

sd-service搭建

这个是最关键的项目,是公用接口的实现及发布dubbo接口的过程。

Springboot和dubbo的整合示例

创建maven项目就不说了

1、 pom.xml文件如下:

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

2、 公用接口实现类UserServiceImpl.java

Springboot和dubbo的整合示例

3、 Mybatis的Mapper接口UserMapper.java

Springboot和dubbo的整合示例

4、 Mapper对应的User.xml文件内容

Springboot和dubbo的整合示例

5、 Service服务启动入口SdServiceApplication.java(就是springboot的启动入口)

Springboot和dubbo的整合示例

6、 非常非常关键的配置文件application.properties文件

Springboot和dubbo的整合示例

7、 服务配置完成,这里面有些坑耽误了我很多时间,不过最终还是配置好了,经过考验的

sd-web搭建

Dubbo服务的消费者,也是很关键的。

Springboot和dubbo的整合示例

1、 pom.xml文件

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

2、 UserController.java文件,调用服务的

Springboot和dubbo的整合示例

3、 Web层的启动文件SdWebApplication.java文件

Springboot和dubbo的整合示例

4、 测试页面,用来返回web请求的index.html(关于springboot中如何处理页面可以单独查资料)

Springboot和dubbo的整合示例

5、 Web层配置文件application.properties

Springboot和dubbo的整合示例

6、 Web层配置完成

服务测试

差点忘了,因为涉及到数据库的操作,所以自己创建个mysql的库和表,手动加两条测试数据,就像这个样子的:

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

另外不要忘了自己把zookeeper安装并且启动了(防火墙该关的关了)

1、 启动生产者sd-service项目:SdServiceApplication

Springboot和dubbo的整合示例

日志中需要看到红框里的内容才说明你这个服务已经注册到zookeeper了

2、 可以使用dubbo-admin看一下已注册的服务(dubbo-admin的安装这里也不介绍了)

Springboot和dubbo的整合示例

3、 启动web层,就是消费者的服务:SdWebApplication

Springboot和dubbo的整合示例

看到红框的内容说明消费者也注册到了zookeeper节点

4、 再看下dubbo-admin

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

Springboot和dubbo的整合示例

5、 接口调用测试,浏览器访问controller的接口

Springboot和dubbo的整合示例

后台日志:

Springboot和dubbo的整合示例

可以看到两个service实现类中方法的操作结果,第二个是从数据库查询出来的结果,说明mybatis操作也是没有问题的

6、 基本系统架构搭建完成

需要注意的问题

1、 dubbo这两年版本改动很大,网上的资料内容不统一,这里只代表我选择的版本搭建运行示例

2、 Dubbo-admin和zookeeper的安装配置方法这里不再叙述,有需要的自己查资料

3、 关于springboot中dubbo的starter有多个不同的版本,我这里选用的是官方的版本,不管你选择哪个,只要可以正常使用满足要求即可

4、 Dubbo还是很强大的,只不过这两年忙着和apache进行整合,所以改动比较多,官方git地址为:
https://github.com/apache/incubator-dubbo

5、 Dubbo-admin最新版改动也特别大,可以参考官方:
https://github.com/apache/incubator-dubbo-ops


分享到:


相關文章: