2016-05-10 4 views
3

Soweit ich weiß, bedeutet "Service Discovery" eine Möglichkeit für einen Client, über einen Server (oder Cluster von Servern) herauszufinden, mit dem er sich verbinden möchte.Was ist Service Discovery und warum brauchen Sie es?

Ich habe Webanwendungen erstellt, die mit anderen Back-End-Prozessen über Protokolle wie HTTP und AMQP kommunizieren. In diesen hat jeder Client eine Konfigurationsdatei, die einen Hostnamen oder andere Informationen enthält, die für die Verbindung mit dem Server benötigt werden. Dieser wird zum Zeitpunkt der Bereitstellung mit einem Konfigurationstool wie Ansible festgelegt. Das ist einfach und scheint ziemlich gut zu funktionieren.

Ist Service Discovery eine Alternative, um nur Serverinformationen in die Konfigurationsdatei eines Clients zu übertragen? Wenn ja, warum ist es besser? Wenn nicht, welches Problem löst es?

+0

Beantwortet Ihre Verwendung von [tag: microservices] diese Frage nicht für Sie? – jonrsharpe

+0

Nein, ich verstehe nicht, was Service Discovery ist, und wenn es das ist, was ich denke, ich weiß nicht, warum Microservices es brauchen würde. – gesgsklw

Antwort

3

die durch die Überprüfung, welche Service-Discovery Beginnen wir - hier ist eine gute Erklärung: https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/ (dieser Link sollte die Frage gefragt ziemlich klären)

Und hier ist ein Beispiel, wie es in der Praxis verwendet wird: Sie Angenommen haben Dienst B, der von Dienst A verwendet wird. Dienst B (wie die meisten Dienste in SOA) ist eigentlich ein Cluster von Anwendungen des Typs B. Dienst A erfordert, einen der Knoten von Cluster B zu verwenden, der Cluster von B-Knoten ist jedoch dynamisch. d.h. B-Knoten werden erzeugt und beendet, abhängig von der Belastung des gesamten B-Dienstes. Nun möchten wir, dass Service A jedes Mal mit einem Live-B-Knoten kommuniziert, wenn er Service B verwenden muss. Dazu verwenden wir das Service-Discovery-Tool, um uns zu jeder Zeit, eine Adresse, zur Verfügung zu stellen von einem der Live-B-Knoten.

Also, versuchen, Ihre Fragen zu beantworten, die Endpunkt-Server-Informationen (insbesondere Endpunkt-Adresse) als statische Konfiguration in einer Konfigurationsdatei setzen, die beim Start des Dienstes A gelesen wird, werden Sie nicht die Dynamik geben möchten Sie, wenn sich die Endpunkte von Service B ständig ändern können.

Verwandte Themen