golang RPC

1、RPC流水线工程

A585234C-4387-4681-984F-3048526282AD.png
详解如下:
  • ① Client以本地调用的方式调用服务
  • ② Client Stub接收到调用后,把服务调用相关信息组装成需要网络传输的消息体,并找到服务地址(host:port),对消息进行编码后交给Connector进行发送
  • ③ Connector通过网络通道发送消息给Acceptor
  • ④ Acceptor接收到消息后交给Server Stub
  • ⑤ Server Stub对消息进行解码,并根据解码的结果通过反射调用本地服务
  • ⑥ Server执行本地服务并返回结果给Server Stub
  • ⑦ Server Stub对返回结果组装打包并编码后交给Acceptor进行发送
  • ⑧ Acceptor通过网络通道发送消息给Connector
  • ⑨ Connector接收到消息后交给Client Stub,Client Stub接收到消息并进行解码后转交给Client
  • ⑩ Client获取到服务调用的最终结果

主要需要RPC负责的是2~9这些步骤,也就是说,RPC主要职责就是把这些步骤封装起来,对用户透明,让用户像调用本地服务一样去使用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,...
    ebayboy阅读 3,452评论 0 1
  • 今天看到不少公司都是用rpc 挺好奇的 不知道为何要用rpc?搜了一圈看一些说法是http可能性能低,而tcp要处...
    jiqiren007阅读 13,080评论 2 2
  • gRPC 简介: gRPC 是一款高性能、开源的 RPC 框架,产自 Google,基于 ProtoBuf 序列化...
    谢烟客阅读 13,563评论 6 36
  • 印记日:“定位效应”是指我们人类对第一印象保留比较长的时间,例如你在一个培训场合认识的第一个陌生人,TA比较有可能...
    1fa8a0d17577阅读 676评论 0 0
  • 青春是生命的春天,启动所有的可能。大自然春天,春潮涌动,柳吐金丝,桃染丹霞,莺莺燕燕,蜂飞蝶舞。生命的春天,春心漾...
    大花猫猫阅读 5,011评论 25 30