springboot+dubbo+zookeeper整合

最近看了些微服务相关的视频,想自己动手搭建一个简单的分布式应用,由于计算机数量有限,将使用不同的端口来模拟多个计算机,特此记录一下整体思路。

程序开发框架是springboot,众所周知springboot是一个用于快速开发服务应用的框架工具,简化了spring、springMVC的配置,内置tomcat,很方便。

RPC服务调用和注册中心用的是dubbo和zookeeper

一:安装zookeeper

到 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 下载zookeeper压缩包,在虚拟机上进行解压(tar -zxvf zookeeper-3.4.14.tar.gz)。给解压后的文件夹重命名为zookeeper(mv zookeeper-3.4.14 zookeeper)。

把 zookeeper\conf 下的 zoo_sample.cfg 更名为 zoo.cfg,该文件中对zookeeper服务端口做了默认配置,如果有需要可以自行修改端口,端口处理之后修改dataDir的路径。启动zookeeper服务 ./zkServer.sh start

终端出现Startting zookeeoer ...started 说明你的zookeeper已经启动成功。

二:安装tomcat

到https://tomcat.apache.org/download-80.cgi下载tomcat8,选择tar.gz的。下载之后,把文件解压到虚拟机上即可,

三:安装dubbo-admin

目前网上的dubbo-admin基本都是不支持jdk8的,如果不能降低虚拟机的jdk版本,那就度娘一个支持jdk8的dubbo-admin的war包。

下载好之后,把war包改名为dubbo-admin.war(依据个人爱好,笔者不想打那么多的后缀),打开war包下的WEB-INF\dubbo.properties,该文件内如如下

springboot+dubbo+zookeeper整合_第1张图片

dubbo.registry.address 代表注册中心zookeeper的服务器所在地址和服务端口

dubbo.admin.root.password=root 代表root账户的密码

dubbo.admin.guest.password=guest 代表guest账户的密码

因为笔者都是在同一台虚拟机上进行部署的,所以这里就没做任何更改,如果有需要可以自己更改配置。

以上内容处理完毕之后,将war包粘贴到虚拟机上安装的tomcat的webapps下,启动tomcat,访问 localhost:端口号/war包名 来访问dubbo-admin,如下图。

笔者的访问地址为 localhost:800/dubbo-admin

springboot+dubbo+zookeeper整合_第2张图片

至此,服务调用和注册中心相关准备工作已经做好了,接下来开始写代码。

四:代码方面,整体思路如下

做个简单应用,功能是查询某个学生的具体信息,因为主要是演示dubbo+zookeeper,这里就不写dao层了,程序主要分为controller和service两个层面。

把controller和service拆分为两个服务,也就是两个springboot工程,service用来提供查询服务,controller用来用户访问并调用service提供的服务,展示服务返回的信息。因为controller和service都会用到相同的服务接口类,因此需要给它(接口抽象类)提出来,单写到一个maven工程中,打包之后,共两个项目依赖。

一、公共server对象创建

简单的一个接口,StudentServer,写好之后install到maven本地仓库中,共其他两个工程来使用

springboot+dubbo+zookeeper整合_第3张图片

二、创建provider(服务提供者)工程

创建springboot工程,注意springboot工程创建之后把pom文件中的

spring-boot-starter-parent的version改为2.2.0.RELEASE 否则会与下面依赖的版本产生冲突

在pom文件中添加如下依赖

springboot+dubbo+zookeeper整合_第4张图片

创建上述server的实现类,注意@Service注解不是spring中的注解,而是dubbo提供的@Service注解。@Compent注解如果本工程不使用的话可以不添加,不影响dubbo扫描。

springboot+dubbo+zookeeper整合_第5张图片

在工程下的application.yml配置文件中配置dubbo相关信息

springboot+dubbo+zookeeper整合_第6张图片

在springboot启动类增加类注解@EnableDubbo,启动springboot项目,启动之后刷新dubbo-admin的页面,到提供者页面中查看服务提供者是否创建成功。

springboot+dubbo+zookeeper整合_第7张图片
服务创建成功啦!

三、创建customer工程

创建一个springboot工程,pom文件中引入和provider项目中相同的依赖,yml配置文件如下

springboot+dubbo+zookeeper整合_第8张图片

创建一个controller,注入StudentServer,在变量上添加注解@Reference,该注解是dubbo提供的,用于消费者引用服务配置。

springboot+dubbo+zookeeper整合_第9张图片

在springboot启动类添加类注解@EnableDubbo,启动该工程,刷新dubbo-admin的页面,到消费者页面中查看消费者是否创建成功。

springboot+dubbo+zookeeper整合_第10张图片
消费者创建成功

访问 localhost:9999/student/search/张三 查看服务是否调用成功。

springboot+dubbo+zookeeper整合_第11张图片
成功啦

至此,一个简单的springboot+bubbo+zookeeper分布式应用创建成功,仅个人记录使用,如有不对的地方请包涵。

你可能感兴趣的:(springboot+dubbo+zookeeper整合)