Konfigurieren von dynamischen Eigenschaften während der Verwendung von spring boot?
Ich bin Planung zu nutzen, Spring Boot für meine Aufgabe. Seine typische server-Anwendung mit Verbindung zur Datenbank. Ich weiß, dass ich verwenden können, Spring-Konfiguration zu externalisieren, meine Eigenschaften, z.B. db-Verbindung-details. Aber ich habe auch andere dynamische Eigenschaften, die benötigt werden zur Laufzeit aktualisiert. z.B. Flipper/feature-flags. Bestimmte Funktionen meiner Anwendung muss kontrolliert werden dynamisch z.B. vorstellen, eine Eigenschaft wie app.kühlen-Funktion.enable=true und dann nach einer Weile die gleiche Funktion sollte deaktiviert werden, indem Sie app.kühlen-Funktion.enable=false
Irgendwelche Vorschläge, was ist die best practice, um die Einnahme solcher dynamische Verhalten zur Laufzeit? Ich denke, der kann folgende Optionen auslösen die änderung...
- Senden einer JMS-Nachricht an server-Instanz mit der oben genannten Eigenschaft ändern
- Rufen Sie eine exponierte API-Endpunkt auf der server-Instanz, z.B. POST http://myapp/admin/config/update {
"config": {
"app.kühlen-Funktion.enable": true
}
}
Ich weiß, ich kann schreiben, meine eigenen benutzerdefinierten code die Umsetzung dieses (es wäre das 3. mal), aber Frage mich, ob es bereits standard-Weg/gängige Praxis, um dynamische Eigenschaft, die Konfigurationen, die ich nicht kenne. Auch wäre es toll, wenn es funktionieren kann mit anderen Lösungen wie Apache ZooKeeper, coreos etcd, Netflix, Kurator etc und haben eine enge integration mit Spring.
Gedanken?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du mit Spring boot haben Sie einen Blick auf
@ConfigurationProperties
. Sie werden benötigt, um eine Bean für den Zugriff auf Ihre Eigenschaften.Daher werden die ursprünglichen Werte der Eigenschaften können geändert werden, während der Ausführung, da Sie regelmäßige Eigenschaften einer bean.
In deinem Fall zum Beispiel:
Und dann Spritzen die bean, in die Sie JMS message listener.
Natürlich, wenn Sie JMS und Spring boot, mit Autokonfiguration, die Sie bereits haben Eigenschaften der Klasse...
Möchten Sie vielleicht einen Blick auf Togglz: http://www.togglz.org
Aus deren homepage:
Togglz ist nicht verpflichtet, dem spring-framework, sondern unterstützt es.
Ihrer Anforderung ist ein guter use-case für "Spring Cloud Config", wo nicht nur können Sie Ihre alle Konfigurationen zentral gelegen, aber auch erfrischen können Sie sich dynamisch und die wiederum ausgewählt werden können, die durch Ihre Referenzierung app aus dem nächsten Augenblick. Finden Sie das standard-spring link für dieselbe.