¿Cuáles son las mejores prácticas para el enrutamiento de URL en el entorno del contenedor? ¿En la aplicación o en la capa de equilibrador de carga?

Esa es una pregunta que solo tú puedes responder.

¿Cuál es la separación que esperas más tarde? ¿Tiene diferentes aplicaciones de Tomcat, por ejemplo, que usan URL distintas para dirigirlas, pero que aún se ejecutan bajo una instancia de Tomcat? Si sus aplicaciones siempre serán Tomcat / Java, entonces podría ser razonable hacerlo en la aplicación.

Pero si algún día desea utilizar una tecnología diferente para proporcionar parte de su contenido, es posible que Tomcat no pueda servirlo. Quizás haya un servidor de aplicaciones diferente, quizás múltiples.

Usando un equilibrador de carga, podría (en algún momento futuro) interceptar la solicitud, como parece saber, y usar el contenido de la solicitud para decidir dónde encaminarla. La ventaja de un equilibrador de carga está en la gran flexibilidad; envíelo a un puerto diferente en la misma máquina (s), envíelo a diferentes máquinas, envíelo a Amsterdam … lo que funcione para sus necesidades. Manejar cosas en la capa de la aplicación puede ser restrictivo, pero puede ser una solución suficiente para la puesta en marcha, y aún puede funcionar fácilmente detrás de un equilibrador de carga, algún día.

EDITAR: para el caso, algunas rutas pueden realizarse en el equilibrador de carga, y aún más en la capa de la aplicación. 😉