Tenemos tres servicios web (/a
, /b
, /c
), donde cada mapas de servicio a un método (go()
) en una clase Java separado (ClassA
, ClassB
, ClassC
).Cómo evitar la concurrencia en la API del servicio web?
Solo se debe ejecutar un servicio al mismo tiempo (es decir: /b
no se puede ejecutar mientras se está ejecutando /a
). Sin embargo, como se trata de una API REST, no hay nada que impida que los clientes soliciten que los servicios se ejecuten simultáneamente.
¿Cuál es la mejor y más sencillo método en el servidor para hacer cumplir que los servicios No funcionan concurrentemente?
actualización: Se trata de una aplicación interna, no vamos a tener una carga grande y sólo tendremos un único servidor de aplicaciones.
Actualización: Esta es una pregunta subjetiva ya que puede hacer diferentes argumentos sobre el diseño general de la aplicación que afecta a la respuesta final. Acepté la respuesta de overthink porque la encontré más interesante y útil.
@Marcus: bien puede ser una aplicación interna, pero el diseño de algo con limitaciones incorporadas en esta etapa es una mala idea. Puede * pensar * que nunca necesitará escalar, pero ¿puede estar seguro? Ahórrese el dolor de cabeza más adelante y siga las mejores prácticas. – jkp
@jkp, punto tomado. –