限制Springboot服务的上传/出站速度

时间:2018-12-23 21:56:10

标签: spring spring-boot

我有一个微服务,负责将文件上传到Google Cloud Storage。我的问题是我需要放慢速度。目前,它将消耗所有可用带宽,通常这是很大的,但是在我的用户情况下不会。

我已经看到有关速率/请求限制的一些问题,但这不是我要解决的问题。

我在SO或Google上找不到很多尝试这样做的人,所以我不确定从哪里开始。

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

1 个答案:

答案 0 :(得分:1)

您需要自己实施。 看一下支持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);
}