0 准备
- 安装注册中心:Zookeeper、Dubbox自带的dubbo-registry-simple;
- 安装DubboKeeper监控:https://github.com/dubboclub/dubbokeeper;
以上两点准备,不是本文重点,不做详细介绍,安装比较简单,自行查阅相关资料安装学习。
1 服务端
1.2 接口定义
- 创建Maven模块:msa-demo-api
2. msa-demo-api:配置pom.xml
1 | 复制代码<!-- Dubbox依赖 --> |
以上POM配置,从dubbox-2.8.4开始,所有依赖库的使用方式将和dubbo原来的一样:即如果要使用REST、Kyro、FST、Jackson等功能,需要用户自行手工添加相关的依赖。
3. 定义接口:UserService.java
1 | 复制代码/** |
- 定义REST接口:AnotherUserRestService.java
1 | 复制代码package com.alibaba.dubbo.demo.user.facade; |
- 定义实体:User.java
1 | 复制代码package com.alibaba.dubbo.demo.user; |
- 定义REST响应结果实体:RegistrationResult.java
1 | 复制代码package com.alibaba.dubbo.demo.user.facade; |
1.3 服务实现
- 创建Maven模块:msa-demo-provider
2. msa-demo-provider:配置pom.xml
1 | 复制代码<!-- Module依赖 START --> |
- 实现UserService接口:UserServiceImpl.java
1 | 复制代码package com.alibaba.dubbo.demo.user; |
- 实现REST接口AnotherUserRestService:AnotherUserRestServiceImpl.java
1 | 复制代码package com.alibaba.dubbo.demo.user.facade; |
- Dubbox与Spring集成配置:msa-demo-provider.xml
1 | 复制代码 <?xml version="1.0" encoding="UTF-8"?> |
- 配置dubbo.properties
1 | 复制代码#dubbo.container=log4j,spring |
1.4 服务启动
定义服务启动类
1 | 复制代码package com.alibaba.dubbo.demo.provider; |
执行main方法启动,看到以下日志输出时,msa-demo-provider启动成功:
查看DubboKeeper监控大盘,msa-demo-provider发布服务成功,可以看到我们发布的两个接口:
- 创建Maven模块:msa-demo-client
2. msa-demo-client:配置pom.xml
1 | 复制代码<!-- Module依赖 START --> |
- Dubbox与Spring集成配置:msa-demo-client.xml
1 | 复制代码<?xml version="1.0" encoding="UTF-8"?> |
3.1 消费端实现
- 创建Maven模块:msa-demo-consumer
2. msa-demo-consumer:配置pom.xml
1 | 复制代码<!-- Module依赖 START --> |
- 创建消费端测试类:DemoAction.java
1 | 复制代码package com.alibaba.dubbo.demo; |
- Dubbox与Spring集成配置:msa-demo-consumer.xml
1 | 复制代码<?xml version="1.0" encoding="UTF-8"?> |
- 配置dubbo.properties
1 | 复制代码#dubbo.container=log4j,spring |
3.2 消费端测试
定义消费启动类:
1 | 复制代码package com.jeasy; |
执行main方法启动,看到以下日志输出时,msa-demo-consumer启动成功:
同时服务端会输出服务调用日志信息,并调用成功,如下:
模块 | 描述 | 是否必须 |
---|---|---|
msa-xxx-api | 定义接口&实体 | 必须 |
msa-xxx-provider | 依赖api模块,实现服务接口,提供服务 | 必须 |
msa-xxx-client | 依赖api模块,Spring配置文件&测试用例,提供给第三方调用服务使用 | 必须 |
msa-xxx-consumer | 依赖client模块,建议保留该模块,避免client模块直接与应用方紧耦合 | 可选 |
5.1 Dubbox相关资源
- 源码地址 : github.com/dangdangdot…
- 在Dubbo中开发REST风格的远程调用 : dangdangdotcom.github.io/dubbox/rest…
- 在Dubbo中使用高效的Java序列化 : dangdangdotcom.github.io/dubbox/seri…
- 使用JavaConfig方式配置dubbox : dangdangdotcom.github.io/dubbox/java…
- Dubbo Jackson序列化使用说明 : dangdangdotcom.github.io/dubbox/jack…
- Demo : dangdangdotcom.github.io/dubbox/demo…
- 当当网开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用 : www.infoq.com/cn/news/201…
- Dubbox Wiki : github.com/dangdangdot…
5.2 Dubbo相关资源
- 源码地址 : github.com/alibaba/dub…
- Dubbo Wiki : github.com/alibaba/dub…
- http://dubbo.io/
本文转载自: 掘金