首页 > 解决方案 > 限制 Springboot 服务的上传/出站速度

问题描述

我有一个负责将文件上传到谷歌云存储的微服务。我的问题是我需要放慢速度。目前它将消耗所有可用带宽,这通常很好,但在我的用户案例中却不是。

我已经看到一些关于速率/请求限制的问题,但这不是我所追求的。

我在 SO 或 Google 上找不到太多尝试相同的人,所以我有点不确定从哪里开始。

我应该查看 GCS SDK、Springboot、Tomcat 还是其他东西?我希望我可以设置一个 application.properties 标志。

标签: springspring-boot

解决方案


您需要自行实施。查看支持RateLimiter的 Google 的 Guava 库

要限制上传和下载速度,RateLimiter请为每个实例定义一个实例并将它们包装在您的 API 周围。

final RateLimiter uploadLimiter = RateLimiter.create(5000.0); // rate = 5kb per second
void upload(byte[] packet) {
  uploadLimiter.acquire(packet.length);
  networkService.send(packet);
}

推荐阅读