This won't block any thread. It's tryAcquire which will return immediately unable to acquire. It is per apiKey already. But unfortunately guava only has 1 second limit. I will use other implementation.