Si está tratando de limitar el acceso a su API REST basada en Spring, debe usar el algoritmo token-bucket.
Hay un proyecto bucket4j-spring-boot-starter que utiliza la biblioteca bucket4j para limitar la velocidad de acceso a la API REST. Puede configurarlo a través del archivo de propiedades de la aplicación. Hay una opción para limitar el acceso según la dirección IP o el nombre de usuario.
Si usa Netflix Zuul, puede usar Spring Cloud Zuul RateLimit, que usa diferentes opciones de almacenamiento:Consul, Redis, Spring Data y Bucket4j.