Dubbo和Zookeeper的组合使用

参考学习:http://blog.csdn.net/hejingyuan6/article/details/47403299
软件的安装在linux下进行
会用到的软件zookeeper,dubbo.war,tomcat
系统软件的下载地址:
apache-tomcat-8.5.6.tar.gz: http://pan.baidu.com/s/1dFCbut7
dubbo-admin-2.5.4-1.8.war http://pan.baidu.com/s/1qYDaJgg
zookeeper-3.4.9.tar.gz http://pan.baidu.com/s/1qYFcCag
JDK1.8: http://pan.baidu.com/s/1eSejmU2

Zookeeper起到一个注册中心的作用
Dubbo起到一个负载均衡的作用
软件安装
1、jdk安装,直接运行sh jdk.sh install即可完成安装
2、tomcat安装:直接解压即可
tar -zxvf apache-tomcat-8.5.6.tar.gz -C /usr/local
上面的命令的含义是解压tomcat 包,到目录/usr/local下
3、zookeeper的安装:
tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local
解压完成后,到目录cd /usr/local/zookeeper-3.4.9/conf目录下
复制文件cp zoo_sample.cfg zoo.cfg
再vi zoo.cfg

这里写图片描述
•tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
•dataDir:顾名思义就是 Zookeeper保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
•dataLogDir:顾名思义就是Zookeeper 保存日志文件的目录
•clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

配置好后,zookeeper会监听本机的2181端口。
启动 zookeeper 执行命令 sh zkServer.sh start
当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务。

启动完成后,将dubbo.war扔到webapps/ROOT目录下
或是直接执行jar -xvf dubbo.war
修改配置文件:
cd /usr/local/tomcat-8.5.6/webapps/ROOT/WEB-INF/
找到 dubbo.properties
编辑 vi dubbo.properties
dubbo.registry.address=zookeeper://192.168.85.128:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
保存退出

启动tomcat
sh startup.sh

编写服务提供者以及实现:
建立java工程DubboProject_provider

public interface DemoService
{
    public String sayHello(String name);

    public List<User> getUsers();

}
public class DemoServiceImpl implements DemoService
{

    @Override
    public String sayHello(String name)
    {
        return "Hello"+name;
    }

    @Override
    public List<User> getUsers()
    {
        List<User> result=new ArrayList<>();
        User u1=new User();
        u1.setName("wangyi");
        u1.setAge(30);
        u1.setSex("M");
        User u2=new User();
        u2.setName("LiuEr");
        u2.setAge(31);
        u2.setSex("F");
        result.add(u1);
        result.add(u2);
        return result;
    }

}

配置spring暴露服务:
写了文件spring_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:aop="http://www.springframework.org/schema/aop"
    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://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://code.alibabatech.com/schema/dubbo  
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
        ">
        <bean id="demoService" class="cn.com.taiji.provider.DemoServiceImpl" />
        <dubbo:application name="xs_provider" />
        <dubbo:registry address="zookeeper://192.168.85.128:2181" />
        <dubbo:protocol name="dubbo" port="20880"/>
        <dubbo:service interface="cn.com.taiji.provider.DemoService" ref="demoService" />
</beans>

加载Spring配置,启动服务(或者将项目建为web项目,然后在web.xml中配置好spring的启动,然后扔到tomcat中即可提供服务)

public class Main
{
    public static void main(String[] args)throws Exception
    {
        ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext(new String[]{"spring_provider.xml"});
        ac.start();
        System.in.read();// 为保证服务一直开着,利用输入流的阻塞来模拟 
    }
}

消费者:

建立java工程:DubboProject_Consumer
定义消费接口,跟上面的定义一样

public interface DemoService
{
    public String sayHello(String name);

    public List<User> getUsers();

}

定义spring-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:aop="http://www.springframework.org/schema/aop"
    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://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://code.alibabatech.com/schema/dubbo  
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
        ">
    <dubbo:application name="hjy_consumer"/>
    <dubbo:registry address="zookeeper://192.168.85.128:2181"/>
    <dubbo:reference id="demoService" interface="cn.com.taiji.provider.DemoService" />
</beans>

定义消费类:

package cn.com.taiji.consumer;

import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.com.taiji.provider.DemoService;

/**   
*      
* 类描述:   
* 创建人:王金鑫  
* 创建时间:2017年5月22日 下午5:41:59   
* 修改人:王金鑫     
* 修改时间:2017年5月22日 下午5:41:59   
* 修改备注:   
* @version    
*    
*/
public class Main
{
    public static void main(String[] args)throws Exception
    {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(  
                new String[] { "spring_consumer.xml" });  
        context.start();  

        DemoService demoService = (DemoService) context.getBean("demoService");  
        String hello = demoService.sayHello("hejingyuan");  
        System.out.println(hello);  

        List list = demoService.getUsers();  
        if (list != null && list.size() > 0) {  
            for (int i = 0; i < list.size(); i++) {  
                System.out.println(list.get(i));  
            }  
        }  
        System.in.read();  
    }
}

运行生产者的Main类,再运行消费者的Main类
运行结果:
这里写图片描述
查看 dubbo的运行
这里写图片描述
最后程序的源代码下载地址:
http://pan.baidu.com/s/1geZxA5H

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值