1

Einige Hintergrund Ich arbeite an einem Projekt, das ein eigenständiges LAN-Netzwerk mit einer Anzahl von Linux-PCs und 1 zentralen Windows-PC beinhaltet. Ich muss Web-Services schreiben (momentan habe ich ein paar Beispiele mit jersey in java arbeiten) sowohl für den Linux-PC als auch für den zentralen Fenster-PC. Ich möchte ein API-Gateway auf dem zentralen PC veröffentlichen, das die Adressen und Ports der anderen PCs kennen muss, damit er seine REST-Dienste ansprechen kann.den Dienst registery in einem Standalone-LAN (in Service Discovery-Muster)

Die Frage auf der Hand

Meine Frage in zwei Teile getrennt werden können:

1) Wie kann ich Service-Discovery-Arbeit zu machen? Die Option, die ich aus meiner Forschung bis jetzt kenne, ist: Using etcd. Scheint einfach und einfach, aber ich sehe keinen Vorteil darin, eine Datenbank im API-Gateway zu verwalten und Routen für das Registrieren und Entfernen von Diensten auf diesen Routen zu veröffentlichen.

2) Wie werden die Dienste des anderen Linux-PCs die Adresse des zentralen Windows-PCs kennen? Ich habe viele Artikel über das Service-Discovery-Muster gelesen und konnte keinen einzigen finden, der den Teil adressiert, wie genau die Services die Adresse des Service-Registers kennen. Nehmen wir an, dass die Adresse im LAN fest ist und sich nicht ändert, während mein System arbeiten sollte, aber ich weiß es nicht bei der Bereitstellung (Meine Clients müssen es in mehreren verschiedenen LANs bereitstellen, wo die Adresse der Zentralstation sein kann anders, und ich kann ihnen nicht trauen es in einer Config für jede Hilfe vor der Bereitstellung)

vielen Dank im Voraus zu definieren :)

Antwort

1

ich habe nicht den Ruf zu beantworten, aber ich bin interessiert diese Frage aus ähnlichen Gründen.

Sie könnten diese Frage und Antwort nützlich finden auf programmers stackexchange, die über eine Broadcast-Ansatz spricht.

Ich recherchiere etcd und Netflix Eureka und versuche zu verstehen, ob dies auf dem lokalen LAN angewendet werden könnte.

+0

Interessanter Vorschlag dort. Ich bin mir nicht sicher, ob UDP-Übertragung der Weg zu gehen ist, klingt ein wenig zerbrechlich. Ich endete mit der Verwendung von etcd und schrieb ein Codebeispiel, das versucht, mit ihm in allen verfügbaren Adressen im LAN zu verbinden. Ich bin mir nicht sicher, ob dies der richtige Ansatz ist, aber es hat funktioniert –