[英]How can I drop packets using RateLimiter?
我正在尝试使用RateLimiter以每秒特定的限制丢弃数据包。
final RateLimiter rateLimiter = RateLimiter.create(5000.0); // rate = 5000 permits per second
void submitPacket(byte[] packet) {
rateLimiter.acquire(packet.length);
networkService.send(packet);
}
问题是rateLimiter.acquire块而不是丢弃数据包。 如果没有所需的带宽,如何配置rateLimiter丢弃数据包?
RateLimiter.tryAcquire
不会阻止,而是如果不能立即获得许可,则返回false
。 你可能会写像
if (rateLimiter.tryAcquire(packet.length)) {
networkService.send(packet);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.