0718 作业:Hadoop RPC
根据示例,完成一个类似的 RPC 函数:
// 要求:输入你的真实学号,返回你的真实姓名
// 输入学号 20210000000000,返回 null
// 输入学号 20210123456789,返回心心
// 作业上缴:截图 server 端和 client 端的执行结果
String findName(int studentId);
•1. 首先需用定义一个协议,它描述了服务对外提供了哪些接口或者功能。
package com.gaoyong.bd.rpc;
import org.apache.hadoop.ipc.VersionedProtocol;
public interface StuService extends VersionedProtocol {/*** 定义版本号*/long versionID=1l;
}
•2. Server 端需要实现协议接口,并返回版本号:
package com.gaoyong.bd.rpc;
import org.apache.commons.lang.StringUtils;import org.apache.hadoop.ipc.ProtocolSignature;
import java.io.IOException;
public class StuServiceImpl implements StuService {@Overridepublic String finaName(long studentId) {String name =null;if(studentId<=0L){name ="请输入正确的学号";}else if (studentId == 20210123456789L){name ="心心";}return name;
}
•3. 构建 Server,绑定协议的实现类,并启动 server。
package com.gaoyong.bd.rpc.service;
import com.gaoyong.bd.rpc.StuService;import com.gaoyong.bd.rpc.StuServiceImpl;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.ipc.RPC;
import java.io.IOException;
//启动 RPCpublic class StuRPCService {public static void main(String[] args) {RPC.Builder builder= new RPC.Builder(new Configuration());//服务器 IP 地址 builder.setBindAddress("127.0.0.1");//端口号 builder.setPort(8888);
}
•4. 构建客户端,并访问 add 服务。
结果截图
1.RPC SERVER 启动日志:
2.RPC Client 启动日志:
评论