gRPC与REST性能比较:gRPC双向流性能提升是巨大的 | Vinsguru


是GRPC真的快于REST?让我们同时开发基于gRPC和REST的微服务,并进行gRPC与REST  性能比较。
我们这里的主要目标是提出一个应用程序–具有2种不同的实现(REST和gRPC),以实现完全相同的功能。正如我们已经讨论过的那样,gRPC非常适合涉及更多聊天性的微服务之间的通信,让我们提出一些增加聊天性的要求–这样我们就可以轻松比较性能差异。
为了简单起见,我们考虑2种服务。一克gregator服务和一个后端服务器。我们的后端服务器基本上是给定数字的平方计算器。也就是说,如果您发送2,它将以结果4进行响应。
由于REST默认情况下是一元的,因此可以将性能与gRPC的一元/阻塞存根进行比较。但是,如果我们使用双向流,性能会如何?从理论上讲,它应该比一元性能好得多!
结论:
以下数据分别为:

          CPU利用率、        吞吐量(请求/秒)                 50%响应时间    90%响应时间
REST:       〜85%            15.26                        6.451秒          6.823秒
gRPC一元      〜52%            37.29                        2.442秒          3.381秒
gRPC双向流     〜42%           94.98                        1.042秒          1.148秒


源代码在这里,详细测试过程点击标题见原文。

Java中的gRPC服务器流API源代码可 在此处获得
Java中的gRPC客户端流API源代码可在此处获得
Java中的gRPC双向流API源代码可 在此处获得
Java中的反应式gRPC完整的源代码在这里