远程过程调用(RPC)的原理与要考虑的问题

远程过程调用(RPC)使得分布式系统中的服务调用变得简单,如同本地调用一般。RPC涉及序列化、反序列化以及网络传输,解决服务间通信问题。常见协议有TCP和HTTP,各有优缺点。RPC实现中需考虑服务注册、负载均衡、缓存更新、异步调用、版本控制、线程池管理等多个高可用和高性能因素。
摘要由CSDN通过智能技术生成

远程过程调用 - RPC(remote process call )

consumer----->rpc---->provider

一. 相关概念:

1.本地函数调用: 系统是单体应用时,调用接口可以直接new对象,然后调用方法即可.因为在同一个内 存,即同一个地址空间,所以通过方法栈和参数就可实现.

2.远程过程调用:在分布式系统中,每个模块功能在不同的服务器上,再想调用某个方法,就不行了,因为本地没有那个类.

比如: 想收快递,自己在家时可以自己去接收, 这是本地方法调用; 自己不在家,可以让家中老婆接收,这就好比远程调用. 手机就好比一个代理,代理你发送通讯.进行远程通讯(远程调用).

也许你会说, 可以模仿B/S架构的调用方式,B服务暴露一个restful接口,然后A服务调用这个restful接口间接调用某个方法. 嗯, 这已经很接近RPC了. 不过,这样每次都需要写一串发送http请求的代码,比如:httpClient.sendRequest..之类的, 最好的方式:是像本地调用一样,让使用者感受不到远程调用的过程, 就像这样:

你会说,可以用代理模式呀, 而且最好和spring IOC一起用,通过注入calculator对象,如果扫描到对象加了一个@reference注解,就给他生成一个代理对象.将代理对象放进容器, 代理对象内部就是通过httpClient来实现RPC远程过程调用的.

二. RPC原理

上面这段就是很多RPC框架要解决的问题和解决的原理. 比如dubbo __↑

三 .RPC要解决的问题:

1.分布式系统中,服务之间的调用问题.

2.远程调用时,能像本地调用一样方便,让调用者感知不到远程调用的逻辑

四. RPC实现

实际上,RPC很少用到http协议进行数据传输,毕竟只想传输一下数据,何必动用一个文本传输

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值