一行RPC调用,究竟发生了什么?(内核干货)

Posted 架构师之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一行RPC调用,究竟发生了什么?(内核干货)相关的知识,希望对你有一定的参考价值。

每当我们写下一个本地函数调用的时候:
int result = Add(1, 2);

我们知道,代码段里有一段Add的代码,调用方将参数1和2压栈传入,Add函数计算完成之后,返回结果给result,这是一个本地函数调用的过程。

画外音:额,有朋友留言,他并不知道。

那每当我们写下一个RPC接口调用的时候:
int result = RPCService::Add(1, 2);

整个过程发生了什么?


又或许,那么当我们写下RPC异步调用的时候:
RPCService::Add(1, 2, callback);

callback(result){
    ...
}

整个过程又发生了什么?


微服务分层架构之后,微服务能够提供RPC接口,使得上游像调用本地函数一样,去调用一个远端的服务:
(1)整个RPC内核架构是怎么样的?
(2)整个RPC调用内部流程是怎么样的?
(3)内存对象,如何转化为二进制流?
(4) 同步调用RPC架构 序列化组件,连接池组件的实现细节是怎么样的?
(5) 异步调用RPC架构 上下文管理器,请求收发队列,请求收发线程,超时管理器的实现细节是怎么样的?
(6)...
作为一个有追求的工程师,这些RPC内核细节,是需要了解的。

工程师的核心竞争力,并不是用过多少用具,而是懂得工具内核的原理,做到知其然,知其所以然。

事件:在线直播,第六期
话题《RPC内核架构与细节》
人物:沈剑
时间:8.2(今晚)20:00
费用:架构师之路朋友免费,其他人不开放
大纲:上文中的1-6

如何观看直播?
没有任何套路,扫码进入H5,立刻观看。


只聊技术,RPC内核,扫码进入直播间


不知不觉,通过直播讲解技术,已经讲到第六期了:
  • 第一期,区块链架构设计

  • 第二期,秒杀架构设计

  • 第三期,feed架构设计

  • 第四期,搜索引擎内核架构与细节

  • 第五期,MQ内核架构与细节

感兴趣的童鞋, 扫码回看 历史:

扫码,回看历史直播


直播,也是自己一时兴起,付出周末的时间,讲讲技术,和大家聊聊天。如果大家觉得效果好,我尽自己努力,坚持做下去。

颜值主播,嘴笨,如果现场翻车,大伙多多包涵。

公众号不能推消息,很不方便。搞了一个服务号,今后的不定期直播,会以消息的形式,通过服务号发出,欢迎关注。
服务号,不定期免费直播

欢迎今晚20:00来看我在线翻车,来不了的,也帮忙转发,支持下这份情怀。

阅读原文,立刻 进入直播间,提前占坑
让自己有一次,实现RPC的冲动。

以上是关于一行RPC调用,究竟发生了什么?(内核干货)的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#RabbitMQ示例6:远程过程调用RPC

如果结果没有在客户端存根处解包,RPC 模型会发生啥?

干货RMI与RPC的区别

Web | RPC 的结构流程

干货丨KingbaseES中的RPC介绍

在 C 程序中,如果我从 /usr/include 的头文件中调用函数,究竟会发生啥? [关闭]