rpc 服务器不可用_什么是远程过程调用RPC

背景:

 最近在开发中接触到微服务的一些概念,并且为其他业务组通过URL请求的方式提供了我们本地接口。
 其中涉及到了,注册方法,发送和接收脚本,确定调用的URL,鉴权数据。从而引出今天要讲内容RPC框架。

场景:

 当你点开某Q音乐,加载页全是并夕夕广告,你手一抖,居然点进去了,进入到了某夕的店铺。你不禁在想,难道某Q有并夕夕的代码,然后他们直接调用的吗?


什么是RPC
怎样理解RPC

Remote Procedure Calls

 远程过程调用,它是一种通过网络从远程计算机中请求服务,而不需要了解底层的技术。
 比如说两台服务器A、B,服务器A想要调用服务器B上的应用,由于不处于同一内存空间,相互之间无法直接调用,而通过网络来表达语义和传达数据。

 说白就是调用别人的东西像用自己的东西一样。

  那么问题来了:

  • 为什么要提供远程调用的接口,而不是直接提供本地接口,让其他业务组访问我们的代码?
     1、业务独立,业务单一简单,数据库分用户,保证部分的稳定性,便于维护。
     2、区别于外部调用,传统C/S或者B/S模型,客户端直接调用服务端获得数据。现在随着业务的复杂扩大,出现了分布式和微服务,简单一点来说,就是以前都是一家饭馆什么菜都烧,也可以满足大家的口味,但现在不同了,人们的需求越来越多,需要不同的菜馆,诸如炒菜、火锅、烧烤等等。

  • 怎样更好地提供调用的服务。如果是网络的话为何不是直接用网络协议诸如http,而要搞一套框架体系出来。
     以往我们把代码打包成动态库、静态库、SDK、各种包等,直接利用网络协议进行传输,但是网络协议始终是网络协议,它只提供数据的传输,比没有服务的管理,没有一整套系统。我们所提到RPC框架它不止http协议更是一种策略和框架,指导着我们如何更好地进行远程通信。

 RPC是一种内部服务框架,可以涉及服务注册、服务治理、服务发现、熔断机制、负载均衡等。


典型的RPC组件

 前面提到了,RPC不仅仅是一种协议或者技术,宏观来说是一种做事遵循的规范或参考。

一般组成为:7308b4e196aae8108cf488605ad8bdf7.png

RPC 不关注底层协议,交由具体的网络通信协议负责。从RPC协议来讲:

873dd07fb9de555d41992a13984d776a.png

 序列化和反序列化

将数据和对象转化为二进制文件,便于传输。
同时反序列化将二进制文件解析成数据和对象。

 协议编码

编码这块一般的是XML和JSON格式。

 网络传输

TCP、UDP、还是HTTP依照各自的优缺点
常用的RPC框架
框架介绍
Dubbo阿里开源的Java框架
gRPC谷歌
thriftApache服务框架
Tars腾讯C++服务框架
brpc百度框架
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值