一、安装配置Zooker
1.下载Zooker
在apache mirros上下载Zooker :https://mirror.bit.edu.cn/apache/zookeeper/,下载后解压到指定目录
建议下载3.4.14版本,其他版本要下载后缀带bin的压缩包
2.安装配置本地Zooker
解压到指定目录后,进入conf文件夹,将里面的zoo_example.cfg文件重命名为zoo.cfg
进入bin目录,编辑zkServer.cmd文件,在zkServer.cmd最后行前加入pause,否则可能会看不到信息,接着双击打开即可运行本地Zookeeper注册服务,最后出现2181端口(默认端口)即运行成功
二、IDEA中使用Dubbo进行远程服务调用
1.项目模块介绍
这里有两个boot应用程序,分别用consumer和provider表示,provider向注册中心负责注册服务,它里面的服务是实现service接口中的方法,consumer负责消费,用于调用远程服务,除此之外,两者也可以分别实现自己应用中的服务,结构图如下所示:
2.编写外部服务接口
可以在demo下新建一个Module,命名为demo-service,专门负责写供另外应用程序使用的服务接口
demo->new->Module->Maven->Next->命名,在src的main中创建接口方法DemoService
3.编写并配置provider应用程序
1)新建provider的启动项
在demo下新建一个Module,命名为demo-dubbo-provider,和前面一样,这里在java下新建一个Boot的启动项
2)zookeeper和dubbo配置
在resources下添加配置文件,在这里配置本地的zookeeper注册中心地址还有端口等一些信息
# Spring boot application
spring.application.name=boot-provider
server.port=9001
logging.level.root=INFO
management.security.enabled=false
#Dubbo Qos Config0
dubbo.application.qos-enable=false
# Base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service
dubbo.scan.base-packages=com.vivo
# Dubbo Application
## The default value of dubbo.application.name is ${spring.application.name}
## dubbo.application.name=${spring.application.name}
# Dubbo Protocol
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
# Dubbo Registry
dubbo.registry.address=zookeeper://127.0.0.1:2181
3)添加demo-service接口的实现类
使用dubbo的Service注解,对这个接口实现类进行服务注册
4)打包成本地jar包
Maven->项目名->install,打包成本地jar包
4.编写consumer消费者程序
1)编写consumer启动项
这里对model和web层进行分离,新建demo-web模块,在这里配置启动项,为consumer的入口
2)调用远程服务方法
在demo-consumer-dao中创建相应的controller文件,需要将调用服务的pom.xml中导入Provider的service所在包,这里也需要将demo-service依赖添加到pom.xml中来,如下所示:
<dependency>
<groupId>com.***.internet</groupId>
<artifactId>demo-service</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
...
之后再对应controller中使用@Reference注解,用于调用远程服务方法,调用方式和其他本地服务一样。
5.启动项目,并测试结果
对两个应用程序provider和consumer,先启动provider应用,在接着启动consumer,在浏览器中输入本地地址,端口和相应的动作即可调用provider中的服务