Effektive Ports und URL-Umschreibung
Zwei der lästigsten Dinge beim manuellen Starten mehrerer Micros —kollidierende Ports und URLs, die neu gezeigt werden müssen— löst MicroLab von selbst, und zwar ohne den Code der Repos zu verändern.
Effektiver Port
Abschnitt betitelt „Effektiver Port“Fast alle Micros deklarieren denselben Port (typischerweise 8080). Wenn Sie mehrere starten, kollidieren sie. MicroLab bildet die Ports zur Laufzeit um: Jeder Micro erhält einen freien effektiven Port, und das ist der, den er wirklich verwendet. Der im Manifest deklarierte Port kann sich beim Start ändern; in den Szenario-Ansichten sehen Sie den effektiven Port jedes Micros.
URL-Umschreibung
Abschnitt betitelt „URL-Umschreibung“Wenn ein Micro einen anderen Core aufruft, hängt die verwendete URL davon ab, wie Sie
diese Abhängigkeit aufgelöst haben (local, Cloud oder Mock).
MicroLab berechnet die effektive URL und injiziert sie als Konfiguration beim Start:
Systemeigenschaften in der JVM-Familie (-D…), Umgebungsvariablen in Node/Python. Das Repo
wird nicht berührt; alles geschieht durch Injektion.
Perspektive (Host oder Container)
Abschnitt betitelt „Perspektive (Host oder Container)“Die korrekte Adresse desselben Dienstes hängt davon ab, von wo er aufgerufen wird: Ein
nativer Micro erreicht ihn über localhost:<Port>, aber einer im Container braucht die
interne Adresse des Docker-Netzwerks. Das nennt man Perspektive: MicroLab löst die
Hosts mit der Perspektive jedes Clients auf (Maschine oder Container), damit die
Kommunikation im gemischten Modus funktioniert.
Aus demselben Grund wird Kafka mit einem doppelten Listener konfiguriert: Der Advertised Listener, den es ankündigt, muss von dort erreichbar sein, wo jeder Client läuft.