2.1 远程服务调用

远程服务调用(Remote Procedure Call,RPC)在计算机科学中已经存在超过四十年时间,但在今天仍然可以在各种论坛、技术网站上遇见“什么是RPC”“如何评价某某RPC技术”“RPC更好还是REST更好”之类的问题,仍然有新的不同形状的RPC轮子被发明制造出来,仍然有层出不穷的文章去比对Google gRPC、Facebook Thrift等各家的RPC组件库的优劣。

像计算机科学这种快速更迭的领域,一项四十岁高龄的技术能有如此关注度,可算是相当罕见的现象,这一方面是由于微服务风潮带来的热度,另一方面,也不得不承认,确实有不少开发者对RPC本身解决什么问题、如何解决这些问题、为什么要这样解决存在认知模糊的情况。本节,笔者会从历史到现状,从现象到本质,尽可能深入地解释清楚RPC的来龙去脉。