GraphQL和gRPC
这篇文章的初衷是使用GraphQL进行一个真实的项目,并观察gRPC针对HTTP的性能。相反,我们最终使用了很棒的 GraphCool框架, 因此本文将更多地是尝试模拟现实生活条件的实验,谁知道还会有更多项目,因此第三部分可能是一个现实生活项目。
由于我们的中型读者很忙,因此我将首先介绍结果并最后解释基准。
看起来,当您获得一个GraphQL查询来聚合来自不同来源的数据时,gRPC确实很出色,但是当您从一个单一来源获取可观数据时,HTTP速度会更快。
该基准测试面对三个GraphQL查询以汇总其数据。一个使用gRPC,另一个使用经典HTTP,第三个使用HTTP压缩。
我认为这些结果是由于建立HTTP请求的开销比gRPC请求的开销大得多的事实所致。
如果到目前为止,我假设您想知道基准的结构。代码在此仓库中。
基准架构
该基准测试由两台单独的EC2计算机组成,其中包含GraphQL客户端,另一台包含三个gRPC和HTTP服务器。为了避免使任何结果产生偏差,测试不会同时进行。
题库