hadoop所封装的RPC框架简单使用

在分布式系统中各台服务器需要相互调用其他服务器的某些方法,可以使用RPC的方式调用(webservice也是rpc的一种实现方式),在hadoop中有一套它自己封装好的RPC工具包,在hadoop的common包中,导入这个包即可。

下面我们来简单使用下hadoop封装的rpc框架:

  • 服务器端:

1.创建一个协议接口

public interface MyInterface {

    //版本号
    public static final long versionID=10086L;

    //协议方法
    public String getStr();
}

2.创建一个实现类

public class MyImpl implements MyInterface{

    /**
     * 协议方法实现
     */
    @Override
    public String getStr() {
        // TODO Auto-generated method stub
        return "this is a test";
    }

}

3.创建main方法绑定服务

public class MyMain{
    public static void main(String[] args) throws Exception {

        //创建建造对象
        Builder b = new RPC.Builder(new Configuration());

        //绑定参数 
        //第一个为ip
        //第二个为端口
        //第三个为协议接口
        //第四个为业务实例
        b.setBindAddress("localhost")
        .setPort(9876)
        .setProtocol(MyInterface.class)
        .setInstance(new MyImpl());

        //创建服务并启动
        b.build().start();
    }
}
  • 客户端:

1.创建proxy代理对象并远程调用该方法(服务端和客户端的协议接口需要保持一致)

public class MyClientMain{
    public static void main(String[] args) throws Exception {

        //创建代理对象
        MyInterface myProxy = RPC.getProxy(MyInterface.class, 10086L, 
        new InetSocketAddress("localhost", 9876), new Configuration());

        //远程调用服务器方法
        String str = myProxy.getStr();

        //打印
        System.out.println(str);
    }
}
  • 结果:

先启动MyMain,再启动MyClientMain结果如下:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值