Cómo compartir correctamente el cliente JAX-RS 2.0

Para dar un poco de contexto a mi problema ...

Tengo una aplicación web Java EE (como UI / cliente) que accede a servicios para datos / lógica empresarial a través de una interfaz REST utilizando la API de cliente JAX-RS 2.0 (implementación de Resteasy).

Actualmente, inyecto una nueva instancia de Cliente JAXRS por solicitud utilizando un bean gestionado CDI RequestScoped, pensando que la aplicación cliente puede llamar a múltiples recursos de back-end por solicitud y reutilizo el mismo Cliente JAXRS para toda la solicitud (aunque leí en alguna parte esto puede no ser correcto ya que potencialmente estoy cambiando el URI para cada invocación)

La documentación para JAXRS Client parece sugerir que el cliente es una operación potencialmente costosa y que la aplicación debería limitar la cantidad de conexiones que crea. También parece contradecirse y sugerir que el cliente debe cerrarse una vez que todas las solicitudes a un WebTarget en particular hayan finalizado.

La aplicación del cliente podría admitir miles de usuarios simultáneos, por lo que crear y destruir miles de 'clientes caros' no parece ser el enfoque correcto, por lo que creo que un grupo de clientes compartido es más apropiado, pero no parece haber ninguna información sobre cómo Esto debería lograrse.

Todos los ejemplos parecen mostrar la creación de un nuevo cliente para la solicitud y a) cerrarla después de ob) no cerrarla pero no explicar realmente qué sucede en una segunda solicitud.

¿Puede ayudarnos a proporcionar algunas respuestas sobre cómo cree que se resolvería esto o información sobre cuál es la mejor práctica para este enfoque?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta