Mi requisito es muy simple de entender.Cómo acelerar las llamadas al servicio web en una aplicación web Java
Quiero llamar a un servicio web desde mi aplicación web Java con la restricción de un máximo de 10 llamadas al servicio web por minuto. Justo después de 1 minuto, puedo establecer otras 10 conexiones, independientemente del estado de las 10 llamadas al servicio web anteriores (finalizadas o no).
¿Alguien puede guiarme en el enfoque para implementar esto? ¿Algún tutorial o enlaces útiles?
Esto parece buena. ¿Necesito hacer la clase singleton, ya que varios usuarios pueden golpear al mismo tiempo? ¿O puedo colocar este código que ha publicado en una clase simple de Java y usarlo en mi servlet? – Badal
@Badal puede tener tantas instancias como desee, p. para diferentes servicios web. Por lo tanto, no lo convertiría en un singleton. Definitivamente tiene que compartir la instancia entre todas las llamadas a un servicio protegido. Sin embargo, cómo hacerlo depende de su aplicación. Por ejemplo, si está utilizando Spring, debería hacer que RequestThrottler sea un campo de un bean incluso de un bean. Alternativamente, puede almacenarlo en el ámbito de aplicación de su aplicación web o hacer la regulación dentro de un filtro. Ya ves, muchas opciones aquí. – sfussenegger
@ sfussenegger: Para dejarme en claro, déjame explicarte. Digamos que 500 usuarios golpean mi servidor, así que tendré 500 instancias de servlet. Cada uno creará el objeto SomeWebService y el objeto throttler (por lo que tendré 500 objetos de servicio y 500 de throttler). Ahora la clase RequestThrottler se encargará del golpe máximo por minuto. Por favor, acéptame, ¿entiendes? y por cierto, muchas gracias por su ayuda. :) – Badal