zoukankan      html  css  js  c++  java
  • 利用HADOOP中的jar写一个RPC

    RPC调用需要服务端和客户端使用相同的协议:

    协议:

    package cn.itcast.bigdata.hadooprpc.protocol;
    
    public interface IUserLoginService {
    
        public static final long versionID = 100L;
        public String login(String name,String passwd);
        
    }

    这里协议就是接口

    服务端的实现类:

    package cn.itcast.bigdata.hadooprpc.service;
    
    import cn.itcast.bigdata.hadooprpc.protocol.IUserLoginService;
    
    public class UserLoginServiceImpl implements IUserLoginService{
    
        @Override
        public String login(String name, String passwd) {
            
            return name + "logged in successfully...";
        }
        
        
        
    
    }

    发布服务:

    package cn.itcast.bigdata.hadooprpc.service;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.ipc.RPC;
    import org.apache.hadoop.ipc.RPC.Builder;
    import org.apache.hadoop.ipc.RPC.Server;
    
    import cn.itcast.bigdata.hadooprpc.protocol.ClientNamenodeProtocol;
    import cn.itcast.bigdata.hadooprpc.protocol.IUserLoginService;
    
    public class PublishServiceUtil {
    
        public static void main(String[] args) throws Exception {
        
            
            
            Builder builder= new RPC.Builder(new Configuration());
            builder.setBindAddress("localhost")
            .setPort(9999)
            .setProtocol(IUserLoginService.class)
            .setInstance(new UserLoginServiceImpl());
            
            Server server= builder.build();
            server.start();
            
            
            
            
            
            
        }
        
    }

    客户端调用RPC服务:

    package cn.itcast.bigdata.hadooprpc.client;
    
    import java.net.InetSocketAddress;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.ipc.RPC;
    
    import cn.itcast.bigdata.hadooprpc.protocol.IUserLoginService;
    
    public class UserLoginAction {
        public static void main(String[] args) throws Exception {
            IUserLoginService userLoginService = RPC.getProxy(IUserLoginService.class, 100L, 
                    new InetSocketAddress("localhost", 9999), new Configuration());
            String login = userLoginService.login("angelababy", "1314520");
            System.out.println(login);
            
        }
    }

      使用的hadoop的hadoop-common-2.6.4.jar这个j包,在其他工程也可以使用

  • 相关阅读:
    MySQL 查询树结构、循环查询、查看函数、视图、存储过程
    SpringBoot 部署:外置依赖包
    springboot集成docker实现自动化构建镜像说明
    Chrome谷歌浏览器常用快捷键、开发技巧
    Windows常用CMD命令
    Git 版本管理,与 SVN区别对比
    TensorFlow重新导入restore报错: OP_REQUIRES failed at save_restore_v2_ops.cc:184 : Not found: Key Variable not found in checkpoint
    MySQL字符集设置
    Hive 时间操作
    深度思考:如何规划你的职业生涯
  • 原文地址:https://www.cnblogs.com/duan2/p/7500406.html
Copyright © 2011-2022 走看看