I will simply decide whether to turn on throttling by measuring concurrent requests. Because the most time costing part of my service is to query DB. If DB's getting slow, many request will be blocked so that I have to drop further requests to prevent DB crashing.
And could please explain more specific that how could I use ServerInterceptor to do this? IMHO, I can not just ignore the request, in case that clients will wait until request timeout, or causing client side Future object leak. I think it's better to send a error message(onError) to client immediately. How can I do this in ServerInterceptor?