Hadoop中RPC操作实例

先创建一个maven项目
具体请看头两篇博客

接口

创建一个hello.java的class

/**
 * rpc中的协议
 * @author msm
 *
 */

public interface hello {
    public static final long versionID = 1;
    /**
     * 协议
     * @param words
     * @return
     */

    public String say(String words);

}

服务器

创建一个RPCServe.java的class

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.ipc.RPC.Server;

/**
 * rpc中的server
 * @author 
 *
 */

public class RPCServer implements hello {

    public String say(String words) {
        // TODO Auto-generated method stub
        System.out.println(words);
        //逻辑代码
        return "recived datanode01 heartbeats!";
    }

    public static void main(String [] args){
        try {
            //获得一个服务
            Server server = new RPC.Builder(new Configuration())
            .setInstance(new RPCServer())
            .setProtocol(hello.class)
            .setBindAddress("127.0.0.1")
            .setPort(6666)
            .build();
            //启动服务
            server.start();
            System.out.println("server is started......");
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

}

客户端

创建RPCClient.java的class

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;

/**
 * rpc中的客户端
 * @author 
 *
 */

public class RPCClient {
    public static void main(String[] args) {
        try {
            while (true) {
                hello hello = RPC.getProxy(hello.class, 1, new InetSocketAddress("127.0.0.1", 6666), new Configuration());
                String res = hello.say("I am dataname01, I am live...");
                System.out.println(res);
                Thread.sleep(3000);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

依次运行服务器,客户端出现下图表示成功
服务器
这里写图片描述
客户端
这里写图片描述
完美

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之芫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值