对RPC的理解

RPC是什么

PRC(Remote Procedure Call 远程过程调用)本地计算机程序通过网络调用远程计算机服务

为什么要用RPC

  1. 可以做到分布式,现代化的微服务

  2. 部署灵活

  3. 解耦服务

  4. 扩展性强

RPC的目的是让你在本地调用远程的方法,而对你来说这个调用是透明的,你并不知道这个调用的方法是部署哪里。通过RPC能解耦服务,这才是使用RPC的真正目的。

RPC结构

client-server 结构,调用方为client,远程被调用方为server。

RPC工作原理

1.调用客户端句柄;执行传送参数
2.调用本地系统内核发送网络消息
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数
5.执行远程过程
6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核
8.消息传回本地主机
9.客户句柄由内核接收消息
10.客户接收句柄返回的数据

RPC框架有哪些

一般主流框架都实现了跨平台跨语言的C/S RPC调用。

  • dubbo,主流配合hessian协议使用,duboo/hessian.

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

  • thrift,Apache Thrift software framework.

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

  • hprose,High Performance Remote Object Service Engine

是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。
你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

RPC-HTTP

HTTP 本质来讲是RPC调用的一种实现方式。换种方式说,RPC客户端可以通过HTTP连接到RPC服务端程序执行RPC(远程过程调用)

把RPC比作交通工具,那么HTTP就是相当于汽车

HTTP 调用优点

  • 协议统一,各个平台几乎都原生支持HTTP

  • 调用简单,直接

  • 开发方便

RPC 框架的优点

  • RPC框架一般使用长链接,不必每次通信都要3次握手,减少网络开销

  • RPC框架一般都有注册中心,有丰富的监控管理

  • 发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作

  • 协议私密,安全性较高

  • rpc 协议更简单内容更小,效率更高

  • 服务化架构、服务化治理,RPC框架是一个强力的支撑

RPC-REST

REST 是定义http接口调用的一种方式,REST 也可以说是RPC调用的实现方式。

参考文档:


Vestin
Great!

For Freedom.

132 声望
15 粉丝
0 条评论
推荐阅读
前端基础工作流:sass自动化编辑成css
目前sass提供了观察文件变化,自动将sass文件编译成css的功能。但在有些机子上跟踪编译非常慢。使用不便。如果想更顺手的完成更复杂的编译,就需要使用nodejs,gulp 工具进行处理。

Vestin2阅读 5.2k

一个HTTP请求的曲折经历
作为程序员的我们每天都在和网络请求打交道,而前端程序员接触的最多的就是HTTP请求。平时工作中,处理网络请求之类的操作是最多的了。但是一个请求从客户端发出到被服务端处理、再回送响应,再被客户端接收这一...

nero24阅读 4.9k评论 1

前端优化之 Http 相关优化总结
学习和总结文章同步发布于 [链接],有兴趣可以关注一下,一起学习和进步。Http 优化方式是前端性能优化的重要部分,也是前端必备的知识点之一。减少静态资源文件大小这个是最根本的途径,假设真的有个 10 几兆以...

Samon17阅读 3.1k

浏览器之HTTP缓存的那些事
简单来说,浏览器缓存就是把一个已经请求过的Web资源(如html,图片,js)拷贝一份副本储存在浏览器中。缓存会根据进来的请求保存输出内容的副本。当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制...

Samon16阅读 9.4k评论 7

Chrome 103支持使用本地字体,纯前端导出PDF优化
在前端导出PDF,解决中文乱码一直是一个头疼的问题。要解决这个问题,需要将ttf等字体文件内容注册到页面PDF生成器中。但是之前网页是没有权限直接获取客户机器字体文件,这时就需要从服务器下载字体文件或者提示...

葡萄城技术团队3阅读 13.9k

HTTP,WebSocket 和 聊天室
在涉及到网络层面的相关内容时,不免会联系到 HTTP、TCP、WebSocket 等,但相信大部分人都并不是很清楚其中的一些关系和概念,特别是需要你去做语言表述时,网上有不少优秀的资料和文章,但知识仍需要自己去消化...

熊的猫6阅读 899

封面图
Golang RPC Go标准库的简单实现 介绍+使用
在涉及RPC的应用中,作为开发人员一般至少有三种角色:首先是服务端实现RPC方法的开发人员,其次是客户端调用RPC方法的人员,最后也是最重要的是制定服务端和客户端RPC接口规范的设计人员。在前面的例子中我们为...

LiberHome3阅读 800

For Freedom.

132 声望
15 粉丝
宣传栏