Porte effettive e riscrittura degli URL
Due delle cose più tediose nell’avviare più micro a mano —porte che collidono e URL da ripuntare— MicroLab le risolve da solo, e lo fa senza modificare il codice dei repo.
Porta effettiva
Sezione intitolata “Porta effettiva”Quasi tutti i micro dichiarano la stessa porta (tipicamente 8080). Se ne avvii diversi, collidono. MicroLab rimappa le porte a runtime: ogni micro riceve una porta effettiva libera, ed è quella che usa davvero. La porta dichiarata nel manifesto può cambiare all’avvio; nelle viste dello scenario vedi la porta effettiva di ogni micro.
Riscrittura degli URL
Sezione intitolata “Riscrittura degli URL”Quando un micro chiama un altro core, l’URL che usa dipende da come hai risolto quella
dipendenza (local, cloud o mock). MicroLab calcola l’URL
effettivo e lo inietta come configurazione all’avvio: proprietà di sistema nella
famiglia JVM (-D…), variabili d’ambiente in Node/Python. Il repo non viene toccato;
tutto avviene per iniezione.
Prospettiva (host o container)
Sezione intitolata “Prospettiva (host o container)”L’indirizzo corretto di uno stesso servizio dipende da dove viene chiamato: un micro
nativo lo raggiunge tramite localhost:<porta>, ma uno in container ha bisogno
dell’indirizzo interno della rete Docker. Questa si chiama prospettiva: MicroLab
risolve gli host con la prospettiva di ogni client (macchina o container) affinché la
comunicazione funzioni in modalità mista.
È lo stesso motivo per cui Kafka è configurato con un doppio listener: l’advertised listener che annuncia deve essere raggiungibile da dove gira ogni client.