【问题标题】:Google Pub/Sub + Cloud Run 可扩展性
【发布时间】:2022-01-09 23:44:58
【问题描述】:

我有一个 python 应用程序将 pubsub msg 写入 Bigquery。 python 代码使用 google-cloud-bigquery 库,TableData.insertAll() 方法配额为每张表每秒 10,000 个请求。Quotas documentation

Cloud Run 容器自动缩放设置为 100,每个容器有 1000 个请求。所以从技术上讲,我应该能够达到 10000 个请求/秒,对吧? BQ 插入 API 是最大的瓶颈。

目前我每秒只有几个 100 个请求,同时运行多个服务。

CPU 和 RAM 为 50%。

【问题讨论】:

  • 每秒 100 个请求?到 bigquery 还是到 Cloud Run?如果是 BigQuery,处理请求需要多长时间?多于还是少于1s?一元,并且还有多个并发请求。
  • 500-600 个请求/秒到 Bigquery。处理请求需要 5 秒。
  • 你的机器参数是多少?内存/CPU 数量?在不使用 pub/sub 的情况下,我通过 Cloud Run 和 BigQuery 实现了很好的可扩展性。如何捕获重复的发布/订阅消息?
  • 如果每个 Cloud Run 实例都有默认配置(1 个 vCPU),那很好!
  • 2 个 vCore 和 256Mb 的 RAM。这是否意味着如果我添加更多 CPU 或 RAM,我可以提高请求率?

标签: google-bigquery google-cloud-pubsub google-cloud-run


【解决方案1】:

现在确认您的项目结构,以及 cmets 中给出的一些细节;然后我会查看Pub/Sub quotas and limits,尤其是配额和资源限制,您可以在这两个表格中根据大小检查此信息,吞吐量配额单位部分告诉您如何计算配额使用情况。

我会回答您的问题,是的,您可以达到 10,000 个请求/秒。就像在question 中一样,根据字节大小,您可以插入 10,000 行,除非建议为 500。

Cloud Run 中的concurrency 可以修改,以备不时之需。

【讨论】:

  • 如果此答案对您有所帮助,您可以单击复选标记图标将其标记为已接受。这可以帮助遇到同样问题的未来用户。
猜你喜欢
  • 2018-09-08
  • 1970-01-01
  • 2020-01-17
  • 2020-06-15
  • 2022-01-13
  • 2021-12-12
  • 1970-01-01
  • 2012-01-13
  • 2021-02-21
相关资源
最近更新 更多