RPC远程服务调用

一、Server端

Server端我们借助Hadoop已经帮我们实现的RPC框架。

1、编写接口服务Mybusiness

/**
 * @author 吴明辉
 * @date 2020/8/31-${TIEM}
        */
public interface MyBussiness extends VersionedProtocol {

    //定义签名信息
    public static long versionID  = 1;
    //定义业务方法
    public String sayHello(String s);
}

签名信息:
客户端会传过来一个签名信息,服务端每个类都有一个不同的签名信息。也就是说,签名信息就是表示客户端将要实现的是哪一个类。传过来的签名信息不同,服务器所要传递的代理对象也就不一样。

2、编写实现类Mybusinessimpl

注册签名信息与返回签名信息,注意理解

public class MyBussinessImpl implements MyBussiness {

    @Override
    public String sayHello(String s) {
        System.out.println("我是服务端");
        return "我是:"+s;
    }

    @Override
    public long getProtocolVersion(String s, long l) throws IOException {
        //返回签名ID
        return MyBussiness.versionID;
    }

    @Override
    public ProtocolSignature getProtocolSignature(String s, long l, int i) throws IOException {
        //定义签名信息
        return new ProtocolSignature(MyBussiness.versionID,null);
    }
}

3、编写main方法,启动服务

public class RpcServer {

    public static void main(String[] args) throws Exception {
        //实例化RPC构建builder
        RPC.Builder builder = new RPC.Builder(new Configuration());
        //指定端口和IP地址
        builder.setBindAddress("localhost");
        builder.setPort(1234);
        //指定接口服务和示例类
        builder.setProtocol(MyBussiness.class);
        builder.setInstance(new MyBussinessImpl());
        //构建成服务并开启服务
        Server server = builder.build();
        server.start();

    }

}

主要四个过程:
1、实例化RPC构建builder
2、指定端口和IP地址
3、指定接口服务和示例类
4、构建成服务并开启服务

二、Client端

编写客户端RPCClient

注意要提前实现一个与Mybusiness一样的接口,在这里可以进行粘贴

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

        // 获得RPC代理对象
        MyBussiness proxy = RPC.getProxy(MyBussiness.class,
                MyBussiness.versionID,
                new InetSocketAddress("localhost",1234),
                new Configuration());
        String s = proxy.sayHello("toem");
        System.out.println(s);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值