ITPub博客

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

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

作者:58沈剑 时间:2020-08-03 14:24:41 0 删除 编辑
每当我们写下一个本地函数调用的时候:
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内核细节,是需要了解的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31556838/viewspace-3151194/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
58速运CTO,互联网架构技术专家,“架构师之路”公众号作者。曾任百度高级工程师,58同城技术委员会主席,高级架构师,58到家技术委员会主席,高级技术总监,目前主要负责58速运技术部。

注册时间:2018-09-30

  • 博文量
    420
  • 访问量
    82583