使用dubbo+zookeeper实现简单的远程调用

想用dubbo+zookeeper实现远程调用的第一步是安装zookeeper: zookeeper的安装步骤

安装完成之后启动zookeeper,然后安装dubbo-admin (用于更好的监控服务与管理):dubbo-admin的安装步骤

都OK了之后来开始搭建我们的项目,首先创建一个项目,我取名为dubbo

使用dubbo+zookeeper实现简单的远程调用_第1张图片

然后在pom文件里导入我们需要的依赖~


        UTF-8
        3.1.4.RELEASE
        1.6.6
    

    
        
            junit
            junit
            3.8.1
            test
        
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-asm
            ${spring.version}
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-expression
            ${spring.version}
        
        
        
        
            log4j
            log4j
            1.2.16
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        
        
            com.alibaba
            dubbo
            2.5.3
        
        
        
            com.github.sgroschupf
            zkclient
            0.1
        
        
        
            org.apache.zookeeper
            zookeeper
            3.4.5
        
    

 

记得添加zookeeper和dubbo的依赖!

依赖都添加好了以后在dubbo项目下创建两个子模块(Module)

使用dubbo+zookeeper实现简单的远程调用_第2张图片

provider:提供者

consumer:消费者

我们首先在provider(消费者)模块中添加一个接口一个实现类一个启动类

使用dubbo+zookeeper实现简单的远程调用_第3张图片

DubboAp(接口)i:

package com.sixmac.dubbo;

public interface DubboApi {

    public String say(String str);
}

DubboImpl(实现类):

package com.sixmac.dubbo;


public class DubboImpl implements DubboApi{
    @Override
    public String say(String str) {
        System.out.println("Hello: "+str);
        return "Hello: "+str;

    }
}

AppP(提供者启动类):

package com.sixmac.dubbo;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class AppP {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "*.xml" });
        context.start();
        DubboApi bean = context.getBean(DubboApi.class);
        bean.say("MaNongXF");
        System.out.println("服务启动成功!");
        System.in.read();


    }

}

然后就是配置文件applicationProviderxml



    
    
    
    
    
    
    
    
    
    
    
    


 

然后启动,打印“服务启动成功” 

使用dubbo+zookeeper实现简单的远程调用_第4张图片

 

然后在dubbo-admin 查看

使用dubbo+zookeeper实现简单的远程调用_第5张图片

这就表示服务提供者注册成功,接下来可以在消费者中调用!

服务消费者只需要一个启动类来远程调用提供者的say方法~

使用dubbo+zookeeper实现简单的远程调用_第6张图片

AppC(消费者启动类):

package com.sixmac.app;

import com.sixmac.dubbo.DubboApi;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class AppC {
    public static void main(String[] args) throws  IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "applicationConsumer.xml" });
        context.start();
        DubboApi api = context.getBean(DubboApi.class);
        String str=api.say("MaNongXF");
        System.err.println("res: "+str);
        System.out.println("远程调用成功!");
       System.in.read();
    }


}

然后是配置文件applicationConsumer



    
    
    
    
    
    
    
    
    
    

然后启动AppC

使用dubbo+zookeeper实现简单的远程调用_第7张图片

 

可以看到已经成功调用了提供者的方法,然后再看看dubbo-admin

 

使用dubbo+zookeeper实现简单的远程调用_第8张图片

到这里就OK啦~

 

源码在此:点击下载源码

你可能感兴趣的:(Dubbo+Zookeeper)