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包,在其他工程也可以使用

  • 相关阅读:
    Nginx配置图片请求
    Nginx 配置浏览Linux 系统目录并下载文件
    SpringBoot + Dubbo + Zookper 整合
    mysql 随机选取一条符合条件的记录
    linux 安装rabbitMQ详细教程
    spring boot 实现redis 的key的过期监听,执行自己的业务
    springboot 配置将info、error、debug 分别输出到不同文件
    使用 mvn install 命令将本地jar包注册到本地maven仓库
    关于Snowflake 生成53位ID
    spring boot 或 spring 集成 atomikos jta 完成多数据源事务管理
  • 原文地址:https://www.cnblogs.com/duan2/p/7500406.html
Copyright © 2011-2022 走看看