тестовое задание Буртовой Ян, skype yanchik366.
Eсли используется nginx то настроить распределение запросов по ip.
Eсли jee тогда вместо ConcurrentHashMap redis.
Задание 1
Цель: проверить навыки написания алгоритмов и навык владения Java SDK и библиотеками Spring, Spring Boot
Описание:
-
написать spring-boot приложение, которое будет содержать 1 контроллер с одним методом, который возвращает HTTP 200 и пустую строку.
-
Написать функционал, который будет ограничивать количество запросов с одного IP адреса на этот метод в размере 50 штук в минуту. Если количество запросов больше, то должен возвращаться 502 код ошибки, до тех пор, пока количество обращений за последнюю минуту не станет ниже 50.
-
Сделать так, чтобы это ограничение можно было применять быстро к новым методам и не только к контроллерам, а также к методам классов сервисного слоя.
-
Реализация должна учитывать многопоточную высоконагруженную среду исполнения и потреблять как можно меньше ресурсов.
-
Проект должен собираться при помощи maven командой mvn clean package и запускаться командой java -jar test-1.jar. Порт приложения должен быть 8080.
-
Использовать Java 8 & maven 3.
-
Не использовать сторонних библиотек для троттлинга.