美文网首页
Go RPC 开发指南之RPC介绍

Go RPC 开发指南之RPC介绍

作者: 大植先生 | 来源:发表于2018-02-03 17:01 被阅读0次

        远程过程调用(Remote Procedure Call,缩写为RPC)是一个计算机通信协议。该协议允许运行在一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用,比如Java RMI。

        远程过程调用是一个分布式计算的客户端-服务器(Client/Server)的例子,它简单而又广受欢迎。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回客户端。由于存在各式各样的变体和细节差异,对应地派生了各式远程过程调用协议,而且他们并不互相兼容。

        为了允许不同的客户端均能访问服务器,许多标准化的RPC系统应运而生了。其中大部分采用接口描述语言(Interface Description Language,IDL),方便夸平台的远程过程调用。

        从上图可以看出,RPC本身是client-server模型,也是一种request-response协议。

有些实现扩展了远程调用的模型,实现了双向的服务调用,但是不管怎样,调用过程还是由一个客户端发起,服务器端提供响应,基本模型没有变化。

服务的调用过程为:

        1.client调用client stub,这是一次本地过程调用

        2.client stub将参数打包成一个消息,然后发送这个消息。打包过程也叫做marshalling

        3.client所在的系统将消息发送给server

        4.server的系统将收到的包传给server stub

        5.server stub解包得到参数。解包也被称作unmarshalling

        6.最后server stub调用服务过程返回结果按照相反的步骤传给client

相关文章

  • Go RPC 开发指南之RPC介绍

    远程过程调用(Remote Procedure Call,缩写为RPC)是一个计算机通信协议。该协议允许运...

  • golang-rpc

    参考 golang中的RPC调用服务器方法 golang rpc的两种调用方法 Go官方库RPC开发指南 示例 s...

  • 【golang微服务】RPC原理与Go RPC

    本文介绍了RPC的概念以及Go语言中标准库rpc的基本使用。 什么是RPC RPC(Remote Procedur...

  • golang中的net/rpc包

    本文先介绍RPC,然后go原生对RPC的使用,之后是介绍go语言中有哪些RPC框架以及一些其他常见的框架,最后是探...

  • Go RPC

    Go RPC Go 原生的网络RPC需要关联Go的net框架和库内容(net,tpc,http等等) 理论 总体来...

  • go-zero开发-rpc

    通过修改go-zero rpc的模板 下方指令用于生成rpc服务

  • grpc

    Go的RPC标准库 简单使用 Go语言标准库(net/rpc)的RPC规则:方法只能有两个可序列化的参数,其中第二...

  • EOS Chain/Wallet RPC API的PHP开发包

    介绍一个EOS Chain/Wallet RPC API的PHP开发包。 开始 你可以查看EOS的RPC API参...

  • go rpc 入门

    go rpc 入门 rpc(Romote Procedure Call,远程过程调用)。相对应的就是本地过程调用,...

  • 什么是RPC?

    1. 基本的RPC模型 主要介绍RPC是什么,基本的RPC代码,RPC与REST的区别,gRPC的使用 1.1 基...

网友评论

      本文标题:Go RPC 开发指南之RPC介绍

      本文链接:https://www.haomeiwen.com/subject/qcvuzxtx.html