20200715——大数据中的rpc ambari/hdfs/yarn

学习大数据,发现server与agent,hdfs中的nn与dn,yarn中的rm与nm都是通过rpc来进行通信的,今天就学习一下什么是rpc

rpc是什么

remove produce call
远程过程调用
区别于调用本地方法,相当于调用远程服务器组件中的一个函数

rpc与restful

在这里插入图片描述
当然在学校做项目的时候都是通过restful进行远程调用。
restful都是基于http调用的,后端暴露接口给前端,前端用ajax请求直接访问后端的url,并且传入对应的参数,后端进行调用之后返回前端想要获取的字段,通常都是通过json格式来衡定风格,最终完成调用。

按照上图所说,其实rpc可以通过http协议调用,也可以通过tcp/udp。主要看还是应用的业务场景来分析。

很多框架rpc使用的都是tcp协议,因为tcp在运输层,http在应用层。相比较来说可能tcp比http某种程度上要轻一些。http效率可能低,封装复杂。

rpc的远程调用过程

在这里插入图片描述

第一步:因为需要有一个调用的接口。我们就用动态代理生成一个假的接口。
第二步:动态代理的接口,需要进行远程调用。涉及到了tcp协议。需要传递目标端口与ip,将调用的参数进行序列化。通过通信的方式发送请求。
第三步:远程的接口,反序列化参数,执行要执行的函数,返回结果。
这样就是一个完整的rpc调用过程。

再说一次,不是说RPC好,也不是说HTTP好,两者各有千秋。本质上,两者是可读性和效率之间的抉择,通用性和易用性之间的抉择。最终谁能发展更好,很难说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值