springBoot+Dubbo+Zookeeper整合实现最简单的RPC调用服务(总结)

springBoot+Dubbo+Zookeeper整合实现最简单的RPC调用服务(总结)

这一两天在学习Dubbo在集成springBoot、zookeeper、dubbo的时候遇到了一些问题,对这些问题进行一个总结和反思以及扩展思考。

一、首先是总结集成过程
1.安装好 zookeeper 、谷歌下载好Dubbo-admin.war项目,并能够在tomcat中启动,进入dubbo管理界面。
2.创建项目。
1.这里必须清楚的几点:
1.dubbo注册到zookeeper中的服务是接口地址,服务端和客户端都需要知道和能够调用这
个接口,接口是共享的,但是实现是根据服务端控制的,所以需要创建一个maven jar的项
目,放所有公共的接口,将这个项目命名为 comment-api ,创建好所有的接口以后,将项
目打包-安装在本地maven仓库得到 comment-api.jar

2.dubbo做为一个框架,就有两种配置方式,一种是基于XML的配置方式,一种是基于资源
文件properties的。因为是和springboot集成,所以使用基于资源文件的方式。

2.创建 comment-api 项目
如上第一点中所述创建即可

3.创建服务端项目,也就是提供服务的项目,成为服务提供方,这个项目的本质就是实现 comment-api 中的接口,对接口中的方法进行具体的操作。也正是客户端调用的实质。
该项目最重要的是配置dubbo的相关信息,包括注册中心的地址、端口等信息
贴上最重要的 xml 配置代码
springBoot+Dubbo+Zookeeper整合实现最简单的RPC调用服务(总结)
代码中的dubbo:service就是声明暴露的接口,将具体的实现方式使用 ref 属性注入,直接导致在客户端调用这个接口的时候会使用 ref 所引用的实现类中的该方法进行操作(接口(父类)决定方法的调用,实现类(子类)决定方法的执行)

4.创建客户端项目,也就是消费服务的一个项目,这个项目通过Dubbo这个框架从zookeeper中获取接口的地址,实现接口的远端调用
客户端的项目最重要的也是dubbo的相关配置文件,贴上核心
springBoot+Dubbo+Zookeeper整合实现最简单的RPC调用服务(总结)
既然要从注册中心拿到接口,那也就是这个客户端项目也必须链接到zookeeper注册中心去,并且使用 dubbo:reference 获取注册中心中 interface为指定接口的服务,此处的 ID 属性值 必须和提供方 dubbo:service 中ref引入的名字一致。
在消费端创建 controller 来调用接口,在controller中注解 autowrite 注入实体,调用方法查看结果即可。