一、启动zookeeper,这里使用zookeeper单机模式,不用zookeeper集群
1、 解压修改zookeeper/conf里面的配置文件zoo_sample.cfg为zoo.cfg
2、windows环境下启动zookeeper服务端,运行zkServer.cmd
3、启动zookeeper客户端,运行zkCli.cmd,可以用 “ls /”命令查看哪些服务被注册到了zookeeper
二、启动dubbo-admin
1、下载dubbo,这里使用老版本的,新版本使用方法后面讲https://github.com/zhangai1989/dubbo.git
首先运行dubbo-admin,它是一个web应用,用来方便查看dubbo的相关状态信息
2、修改配置文件信息,打开WEB-INF中的dubbo.properties
dubbo.registry.address :zookeeper地址
dubbo.admin.root.password :root用户密码
dubbo.admin.guest.password :guest用户密码
3、打包部署
配置Project Structure
运行tomcat,然后访问地址,如下图所示则成功
三、在springboot项目中整合dubbo和zookeeper
使用前面创建好的springboot项目,项目地址https://github.com/zhangai1989/sprintboot.git
1、引入dubbo和zookeeper相关的jar包依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.4.10</version>
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
2、添加dubbo服务注册配置文件provider.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 配置可参考 http://dubbo.io/User+Guide-zh.htm -->
<!-- 服务提供方应用名,用于计算依赖关系 -->
<dubbo:application name="dubbo-provider" owner="dubbo-provider"/>
<!-- 定义 zookeeper 注册中心地址及协议 -->
<dubbo:registry protocol="zookeeper" address="localhost:2181" client="zkclient"/>
<!-- 定义 Dubbo 协议名称及使用的端口,dubbo 协议缺省端口为 20880,如果配置为 -1 或者没有配置 port,则会分配一个没有被占用的端口 -->
<dubbo:protocol name="dubbo" port="-1"/>
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.jz.springbootdemo.producer.TestService" ref="testService" timeout="10000"/>
<!-- 和本地 bean 一样实现服务 -->
<bean id="testService" class="com.jz.springbootdemo.producer.impl.TestServiceImpl" />
</beans>
3、创建需要暴露的接口类TestService、TestServiceImpl
package com.jz.springbootdemo.producer.impl;
import com.jz.springbootdemo.producer.TestService;
public class TestServiceImpl implements TestService {
@Override
public String sayHello(String name) {
return "Hello " + name + "!";
}
}
package com.jz.springbootdemo.producer;
public interface TestService {
String sayHello(String name);
}
4、在SpringbootdemoApplication中添加将providers.xml添加到扫描中
5、运行tomcat、在zkServer中
在zkclient中输入 ls / ; ls /dubbo查看zookeeper中注册成功的服务
在dubbo-admin中查看dubbo服务信息
结语:dubbo+zookeeper+springboot整合完成,对于dubbo实现RPC远程调用后面详讲。