小编Kas*_*lie的帖子

性能问题:使用 Gunicorn + Tornado 的异步 gRPC

背景:

我们正在尝试将我们的 API 网关从 REST 迁移到 gRPC。API Gateway 将由 Backend Team 使用REST 使用,API Gateway 与微服务的通信将使用gRPC。我们的 API 网关使用Tornado Python 框架Gunicorn构建,并tornado.curl_httpclient.CurlAsyncHTTPClient用于为每个端点启用 Async/Future。每个端点将使用一元 RPC调用微服务,gRPC 存根将返回Future

因此,在完全迁移到 gRPC 之前,我们尝试比较 gRPC 与 REST 的性能。以下是您可能需要了解的详细信息:

  1. 我们有 3 个端点要测试。/0, /1, 和/2单个字符串负载。有效载荷大小为 100KB、1MB 和 4MB。这些消息在实例刚启动时就已经创建好了,所以端点只需要检索它。
  2. 每个端点的并发性 = 1、4、10。
  3. gRPC 线程池最大工人数 = 1 和 Gunicorn 的工人数 = 16。
  4. 我们使用 APIB 进行负载测试。
  5. 所有负载测试都是使用 GCP 虚拟机实例完成的。机器规格为:Intel Broadwell,n1-standard-1(1 个 vCPU,3.75 GB 内存),操作系统:Debian 9 …

performance tornado gunicorn grpc grpc-python

5
推荐指数
1
解决办法
823
查看次数

标签 统计

grpc ×1

grpc-python ×1

gunicorn ×1

performance ×1

tornado ×1