2016-08-26 4 views
0

Ich habe Feder Web-Anwendung (nicht Spring Boot) läuft in AWS. Ich versuche einen zentralen Konfigurationsserver zu erstellen. Wie aktualisiert man den Spring-Cloud-Client nach dem Ändern der Eigenschaften? Wie pro TutorialSpring Cloud Config Client ohne Eureka, Ribbon und Spring Boot

Actuator Endpunkt durch eine leere HTTP POST an die Client-Refresh-Endpunkt senden, http://localhost:8080/refresh, und bestätigen Sie mit der Überprüfung der http://localhost:8080/message Endpunkt dann gearbeitet.

Aber meine aws Ec2-Instanzen sind hinter dem Loadbalancer, so dass ich die Client-URL nicht aufrufen kann. Ich habe die Netflix Eureka und Ribbon nicht wirklich verstanden, aber es scheint so, als würde man auf der Client-Seite eine weitere Stufe des Load Balancers hinzufügen. Ich mag diesen Ansatz nicht. Nur um eine Eigenschaft zu ändern, möchte ich das vorhandene Projekt nicht unnötig komplex machen. Gibt es einen anderen Weg? oder missverstanden ich Eureka/Ribbon?

Ich habe mir die spring-cloud-config-client-without-spring-boot, spring-cloud-config-client-without-auto-configuration angesehen keine von ihnen haben die Antwort. Der erste Thread wurde im Jahr 2015 beantwortet. Sie fragen sich, gibt es ein Update?

+0

Eureka und Ribbon haben nichts mit Config-Client zu tun. Es gibt einen HTTP-API-Server, der konfiguriert werden muss, aber es ist immer noch etwas, das Sie auf dem Nicht-Boot-Client implementieren müssten. – spencergibb

+0

@spencergibb können Sie bitte erklären, über Http Api? oder Referenzlink bereitstellen? Wie aktualisiert der Client die Eigenschaftenänderungen? – Chandru

Antwort

1

Um die Konfigurationseigenschaften von einem Config-Server zu erhalten. Sie können eine HTTP-Anfrage durchführen. Beispiel:

Aus der Dokumentation können wir sehen:

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml <- example 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

Also, wenn Sie eine Anfrage an http://localhost:8080/applicationName-activeProfile.yml würden Sie die Eigenschaften in .yml Format für die Anwendung mit diesem Namen und aktivem Profil erhalten würden. Spring-Boot-Konfigurationsclients würden diese Werte automatisch bereitstellen, Sie müssen sie jedoch manuell bereitstellen.

Sie brauchen nicht Eureka/Ribbon, damit dies funktioniert, es ist eine separate Komponente. Weitere Informationen: http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_config

Vielleicht könnten Sie sogar Spring-Cloud-Config verwenden, aber ich bin mir nicht sicher, welche zusätzliche Konfiguration ohne Spring-Boot benötigt wird. https://cloud.spring.io/spring-cloud-config/

+0

@spencergibb danke für die Erklärung. Wenn Spring Boot die Eigenschaften automatisch aktualisieren, was passiert mit aktiven Anfragen? – Chandru

+0

aktive Anfragen an was? – spencergibb

+0

@spencergibb Wenn ich 3 Instanzen hinter dem Load Balancer sitzen habe und Load Balancer ist die URL, die ausgesetzt wurde, Wenn ich refresh API auf Client aufrufen, wird es auf einer der drei Instanzen auslösen. Nicht alle drei. Was muss ich tun, damit ich jede Instanz aktualisieren kann? – Anunay

Verwandte Themen