springboot:2.2.2
alibaba.dubbo:2.0.0
zkclinet:0.10
JDK:1.8
1.创建父工程
Idea或Eclipse创建普通Maven工程,GAV定义随意,也可以参考我的
G:com.youzha
A:Dubbo_Soul
V:1.0-SNAPSHOT
父pom完整文件(该文件包括三个子module,在之后创建)
2.创建共用Dubbo_Api
2.1 pom
2.2 创建共用资源
整体目录结构:
|── com.youzha.dubbo
|── dto 封装共用返回Result
|── entity 共用参数,返回Body
|── service 暴露Service,提供给第三方使用
3.创建提供者Dubbo_Provider
3.1 pom
3.2 Service
需要注意的是,这里的@Service引自:import com.alibaba.dubbo.config.annotation.Service;,标注其为一个Dubbo的Service,而下面的@Component才是将其注入成一个Spring Bean。
3.3 Controller
这里的Controller模拟多个服务,除提供Dubbo接口外,自身还提供Http接口。
3.4 启动类Application
3.5 配置文件
4.创建消费者Dubbo_Consumer
4.1 pom
4.2 Service
4.2.1 定义Sevice
这个Service是我们自己业务所需,只是在这个Service中的某些数据我们要调用Provider服务而已,这个和Provider提供的service本身没有直接关系,也不需要保持方法名,入参的完全一致,只是引用。
4.2.2 定义ServiceImpl
说明:
实现是的我们自身的业务接口
通过dubbo的@Reference注解,注入Provider的Service【而提供者是通过dubbo的@Service注解暴露,暴露和注入都在zookeeper获取】
4.3 Controller
4.4 启动类Application
4.5 配置文件
5.验证
5.1 运行zookeeper
当然前提是需要安装zk,配置文件也可以看到我这里启动的本地zk(如果你使用的其他地址的zk,替换上图zk的地址即可),如果没有可以参考这个附件:
zookeeper.rar
(70.7 MB)
运行前你需要解压打开:zookeeper-3.4.14\conf\zoo.cfg,确保对应的dataDir在你本地存在,如果是Linux系统换成对应的路径即可,下图示例:Windows本地
进入:zookeeper-3.4.14\bin,
如果你和我一样是Windows环境测试,双击:zkServer.cmd,
如果你是Linux环境,启动zkServer.sh,二者效果完全一致,启动后类似下图则表示启动完成:
5.2 启动提供者
直接启动对应的启动类Application即可。
5.3 启动消费者
直接启动对应的启动类Application即可。
5.4 请求验证
postman发送地址请求:http://localhost:9092/consumer/getUserById?id=1
查看消费者日志:
查看提供者日志:
6.总结
如果你在本章节,运行并未出现上述效果,可能是哪里出错了,我们在接下来的网关接入,一样比对着可以修复,你可以百度自行解决当前问题,也可直接进入下一章节,进行网关接入,一起验证。