极简配置的dubbo入门
由于公司项目要用到dubbo,故自己对dubbo进行了简单地学习,并做个学习记录。关于dubbo的文档内容这里不做介绍,有兴趣可以去官网进行查看 http://dubbo.apache.org/zh-cn/docs/user/quick-start.html 。好了,废话不多说,开始记录。
一、准备工作
1.环境:jdk1.8.0_181,maven3.5.4,Tomcat8.0.53
2.IDE:Spring-Tool-Suite-3.9.5(eclipse、myeclipse都可以,能用就行)
3.zookeeper-3.4.13(http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.13/ )
二、创建maven工程
创建mydubbo工作组,在工作组下按顺序分别创建四个项目mydubbo-demo、mydubbo-demo-api、mydubbo-demo-provider和mydubbo-demo-consumer。
1.创建mydubbo-demo工程(new maven project —> create a simple project),作为主工程,用于引入公共的依赖
<properties>
<dubbo.version>2.6.3</dubbo.version>
<zookeeper.version>3.4.13</zookeeper.version>
<curator.version>4.0.1</curator.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>${curator.version}</version>
</dependency>
</dependencies>
2.创建mydubbo-demo-api工程,定义公共接口
右键单击mydubbo-demo工程,选择Maven —> New Maven Module Project,创建mydubbo-demo工程的子项目。
定义接口
3.创建mydubbo-demo-provider工程,作为接口的实现方、服务的提供方
同样,创建的是mydubbo-demo工程的子项目。
添加接口依赖
<dependency>
<groupId>com.lzc.dubbo</groupId>
<artifactId>mydubbo-demo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
接口实现
xml配置dubbo信息 —— mydubbo-demo-provider.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 定义提供方的应用名,用于追踪依赖关系。 -->
<dubbo:application name="mydubbo-demo-provider" />
<!-- 使用 multicast 注册中心暴露服务 -->
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<!-- 使用 zookeeper 注册中心暴露服务;需要先开启zookeeper -->
<!-- <dubbo:registry address="zookeeper://localhost:2181" /> -->
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 具体实现的service -->
<bean id="helloService" class="com.mydubbo.demo.provider.HelloServiceImpl" />
<!-- 用于暴露的service接口 -->
<dubbo:service interface="com.mydubbo.demo.api.HelloService" ref="helloService" />
</beans>
启动服务,得到运行结果
4.创建mydubbo-demo-consumer工程,作为接口的调用方、服务的消费方
同样,创建的是mydubbo-demo工程的子项目。
添加接口依赖
<dependency>
<groupId>com.lzc.dubbo</groupId>
<artifactId>mydubbo-demo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
xml配置dubbo信息 —— mydubbo-demo-consumer.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 定义消费者的应用名,用于追踪依赖关系。(不是匹配规则,不要和提供方的应用名一样) -->
<dubbo:application name="mydubbo-demo-consumer" />
<!-- 使用 multicast 注册中心发现/订阅服务 -->
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<!-- 使用 zookeeper 注册中心发现/订阅服务;需要先开启zookeeper -->
<!-- <dubbo:registry address="zookeeper://localhost:2181" /> -->
<!-- 为远程服务生成代理 -->
<dubbo:reference id="helloService" interface="com.mydubbo.demo.api.HelloService"/>
</beans>
启动服务得到运行结果
以上,采用multicast广播注册中心的方式就完成了,下面将使用zookeeper。
三、安装并启动zookeeper
1.将下载好的zookeeper解压到自己喜欢的路径下,到conf目录下,将zoo_sample.cfg重命名为zoo.cfg,进入编辑模式,补上下面两行配置,
dataDir=D:\\tools\\MyProgram\\zookeeper\\myData\\data
dataLogDir=D:\\tools\\MyProgram\\zookeeper\\myData\\log
dataDir,表示保存数据的目录,dataLogDir表示保存数据日志的目录。其它配置暂时默认。进入bin目录,启动zkServer.cmd。
2.将provider和consumer工程中断,把dubbo中的注册中心换成zookeeper,然后再依次启动provider和consumer服务,看到控制台成功输出,代表使用zookeeper方式的服务启动成功。
四、使用zookeeper的客户端查看zookeeper使用情况
1.下载ZooInspector。(本站或者网上资源很多,我不知道最开始的来源属于哪里,这里就不贴链接了)
2.解压并进入build目录,双击zookeeper-dev-ZooInspector.jar打开客户端。
3.点击Connect图标,如果没有改动zookeeper的端口,直接默认点击确定就行了。
五、使用dubbo-admin管理dubbo服务
1.下载dubbo-admin。(我使用的是dubbo-admin-2.5.4.war,同样地,这里就不贴链接了)
2.将下载好的war包放到Tomcat下,启动Tomcat。
3.访问http://localhost:8080/dubbo-admin-2.5.4 ,输入账号、密码(都是root)
代码已上传到csdn,https://download.csdn.net/download/charleyzz/10702431