hadoopRPC的使用

2023-10-26

1模拟namenode的查询元数据

public interface ClientNamenodeProtocol {
	public static final long versionID=1L; //会读取这个版本号, 但可以和客户端的不一样, 没有校验
	public String getMetaData(String path);
}


--------------------------

public class MyNameNode implements ClientNamenodeProtocol{
	
	//模拟namenode的查询元数据
	@Override
	public String getMetaData(String path){
		if("/a.txt".equals(path)){
			return path+": dataNode3 - {BLK_1,BLK_2}";
		} 
		 return null;
	}
}
--------------------------
服务端(先启动)

public class PublishServiceUtil {

	public static void main(String[] args) throws Exception {
		Builder builder = new RPC.Builder(new Configuration());
		builder.setBindAddress("127.0.0.1")
		.setPort(4578)
		.setProtocol(ClientNamenodeProtocol.class)
		.setInstance(new MyNameNode());
		Server server = builder.build();
		server.start();
	}
	
}
--------------------------
客户端(后启动)
public class MyHdfsClient {

	public static void main(String[] args) throws Exception {
		ClientNamenodeProtocol namenode = RPC.getProxy(ClientNamenodeProtocol.class, 1L,
				new InetSocketAddress("127.0.0.1", 4578), new Configuration());
		String metaData = namenode.getMetaData("/a.txt");
		System.out.println("客户端获取的数据:"+metaData);
		 
	}
}

结果

 

2业务的RPC简单模拟

代码

public interface IUserService {

	public static final long versionID = 100L;
	public String getUserName();
	
}
----------------------
public class UserServiceImpl implements IUserService{

	@Override
	public String getUserName() {
		return  "小明";
	}
}

----------------------
服务端
public class PublishServiceUtil {
	public static void main(String[] args) throws Exception {
		Builder builder2 = new RPC.Builder(new Configuration());
		builder2.setBindAddress("127.0.0.1")
		.setPort(9999)
		.setProtocol(IUserService.class)
		.setInstance(new UserServiceImpl());
		Server server2 = builder2.build();
		server2.start();
	}
}

----------------------
客户端
public class UserClient {
	public static void main(String[] args) throws Exception {
		//版本号要和IUserLoginService的版本号统一
		IUserService userLoginService = RPC.getProxy(IUserService.class, 100L, new InetSocketAddress("127.0.0.1", 9999), new Configuration());
		String userName = userLoginService.getUserName();
		System.out.println("用户名是:"+userName);
	}
}


----------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hadoopRPC的使用 的相关文章

  • docker day04

    Dockerfile FORM 1 指定基础镜像 可以起别名 也可以指定多个FROM指令 用于多阶段构建 2 加载触发器 加载ONBUILD指令 3 不指定基础镜像 声明当前镜像不依赖任何镜像 官方保留字 scratch RUN 1 在容器
  • RPC实践(四)Dubbo实践

    Dubbo是一款重要的RPC框架 它是Alibaba开源的分布式服务框架 它主要特点 提供了注册中心来进行服务的管理 支持zookeeper redis等方式来实现注册中心 Dubbo按照分层的方式来架构 使用这种方式可以使各个层之间解耦合
  • Dubbo和Spring Cloud微服务架构对比

    Dubbo和Spring Cloud微服务架构对比 微服务架构是互联网很热门的话题 是互联网技术发展的必然结果 它提倡将单一应用程序划分成一组小的服务 服务之间互相协调 互相配合 为用户提供最终价值 虽然微服务架构没有公认的技术标准和规范或
  • RPC(远程过程调用)详解

    转自 https blog csdn net daaikuaichuan article details 88595202 仅用于自己学习使用 如有侵权删 一 RPC是什么 RPC是指远程过程调用 也就是说两台服务器A B 一个应用部署在A
  • 深入浅出 RPC - 深入篇

    深入篇 我们主要围绕 RPC 的功能目标和实现考量去展开 一个基本的 RPC 框架应该提供什么功能 满足什么要求以及如何去实现它 RPC 功能目标 RPC 的主要功能目标是让构建分布式计算 应用 更容易 在提供强大的远程调用能力时不损失本地
  • Dubbo快速入门

    文章目录 一 初识Dubbo 1 Dubbo是什么 2 Dubbo现状 3 Dubbo的故事 主要历程 二 RPC介绍 三 Dubbo工作原理 四 案例实操 项目编写 1 项目创建 2 服务提供者 producer 的开发 3 服务消费方
  • 高效的Python IPC [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在Python3中制作一个应用程序 它将分为batch and gui部分 Batch负责处理逻辑和gui负责显示它 Which 进程间通信 I
  • GWT + GAE python:COMET 和 RPC 框架

    假设我想在客户端使用 Google GWT 在服务器端使用 Google AppEngine Python 此外 我希望能够使用 RPC 调用服务器以及执行基于 COMET 的交换 就现有框架而言 我有哪些选择 我通过谷歌搜索 gwt py
  • 如何通过 RPC 连接到 Hedera 测试网?​

    我无法通过 HTTP 连接到 Hedera Testnet RPC 端点 可靠地 我间歇性地收到以下 未知错误 Request ID fe7b9928 a23f 0d72 61a1 b7cd23658c01 Unknown error in
  • 至多一次和恰好一次

    我正在研究分布式系统 当涉及到 RPC 部分时 我听说过这两种语义 最多一次和恰好一次 据我所知 当我们不希望重复执行时 最多一次用于数据库实例 第一个问题 这是如何实现的 服务器如何知道它不应该再次执行该请求 它可能是重复的 但也可能是合
  • GWT 和 XSRF 保护

    我正在寻找可能的解决方案来保护我的 GWT 应用程序免受 XSRF 的影响 如果我明白的话GWT的解决方案 http code google com webtoolkit doc latest DevGuideSecurityRpcXsrf
  • GWT (2.4.0) + XSRF

    我一直在尝试让 XSRF 在网络应用程序上运行 但没有成功 我正在研究一个典型的登录实现 我正在关注谷歌的代码 https developers google com web toolkit doc latest DevGuideSecur
  • 如何将 RPC 与 Volttron 结合使用

    我想在我的 volttron 应用程序中使用 RPC 调用 但我无法让任何调用正常工作 所有调用都会失败 并出现 没有到主机的路由 错误
  • 为什么恰好一次语义不可行?

    在 Erlang 希望最好的 RPC 语义中 SUN RPC 具有至少一次 Java RMI 具有最多一次 但没有人拥有恰好一次语义 为什么拥有一次语义似乎不可行 例如 如果客户端不断重新发送唯一标记的请求 直到收到答复 并且服务器会跟踪所
  • 使用 .NET 获得快速 RPC 的最简单方法?

    在 NET 中获取 RPC 最简单的方法是什么 我看到有 NET Remoting和WCF 根据维基百科 WCF是 NET Remoting的后继者 到目前为止 我只尝试了远程处理的东西 这似乎非常简单 到目前为止 我也没有遇到任何应用程序
  • Invoke-Command 和直接查询的区别

    我目前正在编写一个从服务器查询磁盘信息的脚本 我遇到了一个问题 我真的不知道这里发生了什么 愿你能帮助我 以下代码有效 已替换 ComputerName space1 Invoke Command ComputerName xxxxxx S
  • ipc:// 上的 ZeroMQ REQ/REP 和并发性

    我使用 REQ REP 0MQ ipc 套接字实现了一个 JSON RPC 服务器 我遇到了奇怪的行为 我怀疑这是由于 ipc 底层 unix 套接字不是真正的套接字 而是一个事实一根管子 根据文档 必须强制执行严格的 zmq send z
  • RPC 模型中的correlationId 和临时队列 - AMQP

    我正在读书RPC模型 http www rabbitmq com tutorials tutorial six java html在 AMQP 中使用 RabbitMQ 本教程创建了一个临时队列 并且还correlationId 临时队列是
  • PHP 的同步 AMQP

    PHP 能否像 RPC 服务一样对待 AMQP 发送消息并阻塞直到返回回复 是否有任何好的示例 是否有任何库以易于使用的方式包装此类功能 我希望拥有代理消息传递系统的灵活性 但避免 Web 层需要了解其异步性质 当然 绝对 看看 RPC 风
  • LRPC 的意义何在?为什么有人想要对同一台机器进行远程过程调用?

    根据我对 RPC 远程过程调用 的理解 它们提供了一种向远程计算机发送函数调用 调用等的方法 这样做的明显优点是 您可以拥有一个在机器集群上运行的单个程序 并且可以处理更多请求 更多数据等 但我很困惑LRPC 轻量级RPC http www

随机推荐

  • 经典树结构——B+树的原理及实现

    文章目录 B 树的概念 B 树实现 B 树节点参数 B 树的查询 实现 B 树插入 实现 B 树删除 实现 B 树的概念 规则 B 跟B树不同B 树的非叶子节点不保存关键字记录的指针 只进行数据索引 这样使得B 树每个非叶子节点所能保存的关
  • Linux系统基础操作命令

    目录 一 基本使用 1 编辑Linux命令行的辅助操作 2 常用的基础命令 1 切换用户 su 2 pwd 查看当前工作目录 3 cd 切换工作目录 4 cp 复制 5 mkdir 创建目录 6 touch 创建文件 7 创建链接文件ln
  • 《网络安全工程师笔记》 第十一章:WEB服务器和FTP服务器

    注 本笔记来自温晓飞老师的网络安全课程 第十一章 WEB服务器和FTP服务器 第一章 虚拟化架构与系统部署 第二章 IP地址详解 第三章 进制转换 第四章 DOS基本命令与批处理 第五章 用户与组管理 第六章 服务器远程管理 第七章 NTF
  • java基础6

    packagecom edu 01 public class Student 私有化成员变量 private String name private int age set get方法 public voidsetName String n
  • [基础数据结构] 判断是否为完全二叉搜索树

    对二叉搜索树的定义是 一棵深度为k的有n个结点的二叉树 对树中的结点按从上至下 从左到右的顺序进行编号 如果编号为i 1 i n 1 i n 1 i n 的结点与满二叉树中编号为i的结点在二叉树中的位置相同 则这棵二叉树称为
  • UI设计都有哪些设计原则,分享三个给你

    是什么使一个好UI设计容易阅读 是什么让用户轻松浏览 设计师如何创造一个闪亮的UI 任何软件产品的关键部分都是用户界面 好的UI设计 用户甚至会忽略它 如果做得不好 就会成为用户使用产品的绊脚石 为了更有效地设计能够满足用户使用的设计UI
  • 【原理篇】再次带你进入多线程的世界

    1 Java内存模型基础知识 1 1并发编程模型的两个关键问题 线程间如何通信 即 线程之间以何种机制来交换信息 线程间如何同步 即 线程以何种机制来控制不同线程间操作发 的相对顺序 有两种并发模型可以解决这两个问题 消息传递并发模型 共享
  • scala的基础语法之变量

    1 类介绍 我们在new scala类的时候 这里分为Class和Object两大类 idea2019 1版本 其他新版本应该是四种 case Class和case Object 不过没关系 这里想要使用case的直接在前面写case即可
  • 任正非谈成功秘诀:28年只对准一个城墙口冲锋

    文 记者 赵东辉 李斌 刘诗平 蔡国兆 彭勇 何雨欣 任正非和华为公司 堪称当代商业史上的传奇 1987年 年满43岁的任正非和5个同伴集资2 1万元成立华为公司 利用两台万用表加一台示波器 在深圳的一个 烂棚棚 里起家创业 28年后 华为
  • 穿越火线排位赛显示该服务器,CF新段位S7枪王排位调整 排位分数和地图

    CF新段位S7枪王排位调整 排位分数和地图 本次体验服客户端正式更新同时S7枪王排位赛页开启了 本期枪王排位针对地图 段位分数和奖励上进行调整 不同段位分数和地图加成都不同 枪王排位第五赛季开始及优化丢掉大脑再丢烦恼 冲啥大冲啥小 冲啥都有
  • 【无标题】PAT作业1001 害死人不偿命的(3n+1)猜想

    题目要求简要概述 输入一个小于1000的正整数 如果该正整数为奇数 进行2 n的运算 如果为偶数 进行 3n 1 2的运算 反复进行计算 直至n 1后 输出运算的次数 解题方法 1 定义两个整形变量 分别用于输入n 记录运算次数 int n
  • 将压缩包里的图片显示到页面上示例

    在做项目的时候有个这样的需求 需要把压缩包里的图片预览显示出来 梳理一下就以下三步 下载压缩包 解压出文件 组成可用的图片URL 显示到图片标签上 实现这个功能过程还是走了些弯路的 也遇到一些坑 这里就不多废话了 直接上代码 希望能帮助各位
  • SVPWM所需要掌握的一些定理

    1 正弦定理 2 伏秒平衡 不懂 伏秒平衡 又称伏秒平衡 是指开关电源稳定工作状态下 加在电感两端的电压乘以导通时间等于关断时刻电感两端电压乘以关断时间 或指在稳态工作的开关电源中电感两端的正伏秒值等于负伏秒值 在SVPWM中 磁链等于电压
  • ORB-SLAM2第二节---双目地图初始化

    比起单目初始化 而双目实现地图的初始化非常简单 只需要一帧 左右目图像 即可完成初始化 行特征点统计 考虑用图像金字塔尺度作为偏移量 在当前点上下正负偏移量 r 内的纵坐标值都认为是匹配点可能存在的行数 之所以这样做 是因为极线矫正后仍然存
  • 创建steam账户反复人机验证_您必须先通过人机验证才能创建steam帐户怎么办

    展开全部 在注册steam帐户遇到提示必须通过人机验证才能创建62616964757a686964616fe4b893e5b19e31333433643062提示时 勾选注册页面中的进行人机验证 在人机身份验证界面中点击需要的图片并按照步骤
  • socket接收报错

    首先是没得到正确错误号 是因为windows平台WSAGetLastError得过之后就没了 所以需要int变量保存一下 发现错误号后知道是最后一个参数没有初始化复制 bzero buf sizeof buf bzero cli adr s
  • PostgreSQL 多表关联删除

    用PostgreSQL数据库删除某个表数据 student 需要关联多个表 如classroom 作为条件 以下语句走不通 delete s from student s classroom c where s cid c id and s
  • JPA基本数据类型映射

    Employ author Administrator Entity Table name T EMPLOY SequenceGenerator name SEQ sequenceName SEQ SYS FUNC MENU initial
  • 利用MATLAB编写一段表格数据处理并作图

    使用MATLAB处理表格数据并作图可以使用以下步骤 读入表格数据 使用readtable或者xlsread函数读入Excel或者其他格式的表格数据 数据预处理 使用MATLAB的数组运算和统计函数对读入的数据进行预处理 包括清洗缺失值 去除
  • hadoopRPC的使用

    1模拟namenode的查询元数据 public interface ClientNamenodeProtocol public static final long versionID 1L 会读取这个版本号 但可以和客户端的不一样 没有校