Puertos efectivos y reescritura de URLs
Dos de las cosas más tediosas de levantar varios micros a mano —puertos que colisionan y URLs que hay que reapuntar— MicroLab las resuelve solo, y lo hace sin modificar el código de los repos.
Puerto efectivo
Sección titulada «Puerto efectivo»Casi todos los micros declaran el mismo puerto (típicamente 8080). Si levantas varios, colisionan. MicroLab remapea los puertos en tiempo de ejecución: cada micro recibe un puerto efectivo libre, y ese es el que usa de verdad. El puerto declarado en el manifiesto puede cambiar al arrancar; en las vistas del escenario ves el puerto efectivo de cada micro.
Reescritura de URLs
Sección titulada «Reescritura de URLs»Cuando un micro llama a otro core, la URL que usa depende de cómo hayas resuelto esa
dependencia (local, nube o mock). MicroLab calcula la URL
efectiva y la inyecta como configuración al arrancar: propiedades de sistema en la
familia JVM (-D…), variables de entorno en Node/Python. El repo no se toca; todo se
hace por inyección.
Perspectiva (host o contenedor)
Sección titulada «Perspectiva (host o contenedor)»La dirección correcta de un mismo servicio depende de desde dónde se le llame: un
micro nativo lo alcanza por localhost:<puerto>, pero uno en contenedor necesita la
dirección interna de la red de Docker. A eso se le llama perspectiva: MicroLab
resuelve los hosts con la perspectiva de cada cliente (máquina o contenedor) para que
la comunicación funcione en modo mixto.
Es el mismo motivo por el que Kafka se configura con doble listener: el advertised listener que anuncia debe ser alcanzable desde donde corre cada cliente.