浅谈RPC

RPC
全称:remote procedure call 远程过程调用
简介:像调用本地方法一样调用远程方法
使用场景:大型项目
使用目的:

  1. 解耦服务
  2. 提高扩展性
  3. 灵活部署

优势:

  1. 跨语言
  2. 协议私密,安全性高
  3. 数据传输效率高
  4. 支持动态扩展
  5. 降低维护成本

RPC架构:
原理:动态代理 / 代码生成…
三要素:服务注册中心,服务提供者,服务消费者

  1. 服务提供者向注册中心注册服务
  2. 服务消费者调用服务,请求打到注册中心,注册中心转发请求
  3. 注册中心可实现负载均衡和故障切换

流程:
在这里插入图片描述

先来说结论。我认为在一个大型系统内部适合使用RPC,而对外提供服务的时候,应该使用HTTP接口。

其实这么讲也不是特别准确,因为RPC是一种技术,而http是协议,也有用http实现的RPC。我这里泛指的是以服务的方式暴露给外部还是以接口的方式暴露给外部。

RPC出现的核心原因是分布式系统。由于业务越来越复杂,需要将业务拆成多个系统,在这种情况下如果使用http请求去调用其他系统的服务会显得特别麻烦,所以为了像本地方法调用一样,去发起远程调用,让使用者感知不到远程调用的过程,RPC应运而生。所以本质上来说,RPC只是在http外包了一层,使用了代理模式,在代理模式内部通过httpClient去实现远程过程调用。当然为了给请求瘦身,后续主流的rpc是基于自定义的tcp协议而不是http协议了。

除此之外,RPC还是是一套包含了负载均衡、服务治理、熔断限流等分布式场景下常见问题解决方案的框架,承担了http接口场景下网关的很多作用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值