Как сказал @EJP, используя фильтр с HashMap, который хранит время последнего доступа по ключу IP-адреса. 10 запросов в секунду будут переводить до 100 мс между вызовами, минимум. Отправка обратно кода ошибки занятости сервера и уничтожение запроса быстро закроют ресурсы, используемые соединением. Есть готовые решения для Apache, если это вариант для вас.