Dropbox 是一个文件托管服务,提供了云存储、文件同步、个性化云和客户端软件等功能。Dropbox 运行了数百个多语言微服务,它们之间每秒交换数百万个请求。最初,它使用了多个 RPC 框架,包括一个自建的 RPC 框架、Thrift 和一个遗留的 RPC 框架。其中,自建的 RPC 框架使用自定义的协议来实现手动序列化和反序列化,遗留的 RPC 框架则基于 HTTP/1.1,并使用了经过 protobuf 编码的消息。

最终,Dropbox 放弃了上述所有方案,转而选择 gRPC,这样也能够重用消息格式中一些现有的 protocol buffers 定义。Dropbox 创建了基于gRPC 的 RPC 框架,即 Courier,这并不是新的 RPC 协议,而是集成gRPC 与 Dropbox 现有基础设施的项目。Dropbox 对 gRPC 进行了扩充,来满足其在认证、授权、服务发现、服务统计、事件日志和跟踪工具等方面的特定需求。

从这些成功案例可以看到,作为一种进程间消息传递协议,gRPC 操作简单,能够大幅提高生产率和可靠性,并且可以针对互联网规模扩展和运维。这里只列举了一些知名的 gRPC 早期采用者,但 gRPC 的使用场景和采用者正在不断增多。

文档更新时间: 2023-09-02 03:34   作者:Minho