跳到主要内容

RPC

RPC 是远程过程调用(Remote Procedure Call)的缩写形式,Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。 Alt text

  • gRPC 是 Google 开发的高性能远程服务调用框架,特别适用于构建跨语音、高性能、多服务的分布式系统,尤其在微服务架构中表现优异。
  • Dubbo 是一个强大而灵活的分布式服务框架,适用于构建复杂的分布式系统,尤其在微服务和异构系统继承的场景中表现出色。Alibaba 是主要贡献者。
  • Finagle 是 Twitter 开发的高性能 RPC 框架,特别适用于构建高性能、可伸缩、可靠的分布式系统,尤其是在微服务架构中。
  • Thrift 是由 Apache 开发的一种跨语言的远程服务调用框架,具有高性能、多语言支持、动态扩展性的特点,适用于构建复杂、异构、性能要求较高的分布式系统。
  • Motan1/2 是由 Sina 微博开发的一款高性能、易扩展的分布式远程服务调用框架。
  • BRPC 是由 Baidu 开发的高性能、通用的 RPC 框架,他注重性能、灵活性和可扩展性,适用于 Baidu 内部大规模服务的场景
  • JSON-RPC 2.0 是一种轻量级的 RPC 协议框架,设计目标是使用简单、易于理解的 JSON 格式进行数据交换,适用于对通信协议要求较为简单、数据交换格式使用 JSON 的场景,特别适合与小型简单的 Web 开发和移动应用开发。