Windows下Dubbo+Zookeeper搭建

环境:

windows10

jdk1.8

tomcat8

maven3.3.3

spring4.3.5

dubbo2.5.6

dubbo-admin2.5.6

zookeeper3.4.10

安装zookeeper

下载地址http://www.apache.org/dyn/closer.cgi/zookeeper/

解压到D盘后进入Conf目录 D:\zookeeper-3.4.10\conf

复制一份zoo_sample.cfg 并改名为 zoo.cfg,因为 Zookeeper在启动时会找这个文件作为默认配置文件

tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

dataDir:Zookeeper保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

dataLogDir:Zookeeper 保存日志文件的目录。

clientPort:客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

clientPort默认是2181

进入D:\zookeeper-3.4.10\bin目录,双击zkServer.cmd启动注册中心服务

启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务

比如 netstat -ano|findstr 2181

安装dubbo-admin

可以去https://github.com/alibaba/dubbo/releases下载源码用Eclipse将dubbo-admin项目打成War包或网络下载War包文件

将dubbo-admin.war包放到Tomcat的Webapps目录下,并启动Tomcat,然后访问http://localhost/dubbo-admin/

登录用户密码可以从WEB-INF下的dubbo.properties文件中看到,

root账号默认密码为root,guest账号默认密码为guest

登录后即可用看到管理界面

建立3个项目工程

zns_provider_api服务接口(用于提供者和消费者共享)  jar工程

zns_provider_api_impl服务提供者 war工程

zns_consumer 服务消费者  war工程

zns_provider_api

定义一个用户接口

package com.zns.provider.api;

public interface UserService {

public String sayHello(String name);

}

zns_provider_api_impl

实现接口

package com.zns.provider.api.impl;
import com.zns.provider.api.UserService;

public class UserServiceImpl implements UserService {

@Override

public String sayHello(String name) {

return "Hello " + name; 

}

}

增加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">  

        

    <!-- 提供方应用信息,用于计算依赖关系 -->  

    <dubbo:application name="zns_provider" />   

      

    <!-- 使用zookeeper注册中心暴露服务地址 即zookeeper所在服务器ip地址和端口号 -->  

    <dubbo:registry address="zookeeper://127.0.0.1:2181" />  

  

    <!-- 用dubbo协议在某个端口暴露服务 默认是20880 -->  

    <dubbo:protocol name="dubbo" port="30000" />  

  

    <!-- 声明需要暴露的服务接口 -->  

    <dubbo:service interface="com.zns.provider.api.UserService" ref="userServiceImpl" /> 

        

    <!-- 具体的实现bean -->  

    <bean id="userServiceImpl" class="com.zns.provider.api.impl.UserServiceImpl" /> 

  

</beans>  

需要<import resource="classpath:dubbo-provider.xml"/>

maven pom.xml增加下面依赖

<dependency>

<groupId>com.zns</groupId>

<artifactId>zns_provider_api</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

         <groupId>com.alibaba</groupId>

         <artifactId>dubbo</artifactId>

         <version>2.5.6</version>

</dependency>

<dependency>

          <groupId>org.apache.zookeeper</groupId>

  <artifactId>zookeeper</artifactId>

  <version>3.4.10</version>

</dependency>

<dependency>

       <groupId>com.github.sgroschupf</groupId>

  <artifactId>zkclient</artifactId>

  <version>0.1</version>

</dependency>

zns_consumer

增加dubbo-consumer.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">  

        

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->  

    <dubbo:application name="zns_consumer" />  

  

    <!-- 使用zookeeper注册中心暴露服务地址 -->  

    <dubbo:registry address="zookeeper://127.0.0.1:2181"  check="false"/>  

  

    <!-- 生成远程服务代理 -->  

    <dubbo:reference id="userService" interface="com.zns.provider.api.UserService" check="false" />   

  

</beans>  

需要<import resource="classpath:dubbo-consumer.xml"/>

maven pom.xml增加下面依赖

<dependency>

<groupId>com.zns</groupId>

<artifactId>zns_provider_api</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

         <groupId>com.alibaba</groupId>

         <artifactId>dubbo</artifactId>

         <version>2.5.6</version>

</dependency>

<dependency>

          <groupId>org.apache.zookeeper</groupId>

  <artifactId>zookeeper</artifactId>

  <version>3.4.10</version>

</dependency>

<dependency>

       <groupId>com.github.sgroschupf</groupId>

  <artifactId>zkclient</artifactId>

  <version>0.1</version>

</dependency>

新增MyTest类测试

public class MyTest {

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

UserService uService=(UserService)context.getBean("userService");

String result=uService.sayHello("张三");

System.out.println(result);

}

}

运行zookeeper

运行服务提供者

运行MyTest里的Main方法 可以看到调用了服务提供的接口。

搭建基本完毕......

猜你喜欢

转载自www.cnblogs.com/zengnansheng/p/10389621.html