Konfigurieren von Einstellungen für die Eureka Server für Spring-Komponente in Azure Container Apps
Eureka Server für Spring ist ein Mechanismus für die zentrale Dienstermittlung für Microservices. Verwenden Sie die folgenden Anleitungen, um zu erfahren, wie Sie Ihre Eureka Server für Spring-Komponente konfigurieren und verwalten.
Anzeigen
Sie können die Details einer einzelnen Komponente mithilfe des Befehls show
anzeigen.
Bevor Sie den folgenden Befehl ausführen, ersetzen Sie Platzhalter, die mit <>
umgeben sind, mit Ihren Werten.
az containerapp env java-component eureka-server-for-spring show \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--name <JAVA_COMPONENT_NAME>
Liste
Sie können alle registrierten Java-Komponenten mithilfe des Befehls list
auflisten.
Bevor Sie den folgenden Befehl ausführen, ersetzen Sie Platzhalter, die mit <>
umgeben sind, mit Ihren Werten.
az containerapp env java-component list \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP>
Aufheben der Bindung
Verwenden Sie die Option --unbind
, um eine Bindung aus einer Container-App zu entfernen.
Bevor Sie den folgenden Befehl ausführen, ersetzen Sie Platzhalter, die mit <>
umgeben sind, mit Ihren Werten.
az containerapp update \
--name <APP_NAME> \
--unbind <JAVA_COMPONENT_NAME> \
--resource-group <RESOURCE_GROUP>
Liste der zulässigen Konfigurationen für Eureka Server für Spring
In der folgenden Liste werden unterstützte Konfigurationen aufgeführt. Weitere Details finden Sie unter Spring Cloud Eureka Server.
Hinweis
Bitte erstellen Sie für neue Featureanforderungen Supporttickets.
Konfigurationsoptionen
Der az containerapp update
-Befehl verwendet den --configuration
-Parameter, um zu steuern, wie der Eureka Server für Spring konfiguriert ist. Sie können mehrere Parameter gleichzeitig verwenden, solange sie durch ein Leerzeichen getrennt sind. Weitere Details finden Sie in der Spring Cloud Eureka Server-Dokumentation.
Die folgenden Konfigurationseinstellungen sind in der Konfigurationseigenschaft eureka.server
verfügbar.
Name | Beschreibung | Standardwert |
---|---|---|
eureka.server.enable-self-preservation |
Wenn diese Option aktiviert ist, verfolgt der Server die Anzahl der Erneuerungen, die er vom Server erhalten soll. Jedes Mal, wenn die Anzahl der Erneuerungen unter den von eureka.server.renewal-percent-threshold festgelegten Schwellenwert fällt. Im ursprünglichen Eureka-Server ist der Standardwert auf true festgelegt, aber in der Eureka Server-Java-Komponente ist der Standardwert auf false festgelegt. Weitere Informationen finden Sie unter Einschränkungen bei Java-Komponenten von Eureka Server für Spring. |
false |
eureka.server.renewal-percent-threshold |
Der Mindestprozentsatz an Erneuerungen, der von den Clients in dem durch eureka.server.renewal-threshold-update-interval-ms festgelegten Zeitraum erwartet wird. Wenn die Erneuerungen unter den Schwellenwert fallen, werden die Abläufe deaktiviert, wenn die Option eureka.server.enable-self-preservation aktiviert ist. | 0.85 |
eureka.server.renewal-threshold-update-interval-ms |
Das Intervall, in dem der in eureka.server.renewal-percent-threshold angegebene Schwellenwert aktualisiert werden muss. | 0 |
eureka.server.expected-client-renewal-interval-seconds |
Das Intervall, in dem Clients ihre Heartbeats senden sollen. Der Standardwert beträgt 30 Sekunden. Wenn die Clients Heartbeats mit unterschiedlicher Frequenz senden, z. B. alle 15 Sekunden, sollte dieser Parameter entsprechend angepasst werden, da sonst die Selbsterhaltung nicht wie erwartet funktioniert. | 30 |
eureka.server.response-cache-auto-expiration-in-seconds |
Ruft die Zeit ab, für die die Nutzdaten der Registrierung im Cache gehalten werden sollten, wenn sie nicht durch Änderungsereignisse ungültig gemacht werden. | 180 |
eureka.server.response-cache-update-interval-ms |
Ruft das Zeitintervall ab, in dem der Nutzdaten-Cache des Clients aktualisiert werden sollte. | 0 |
eureka.server.use-read-only-response-cache |
Der com.netflix.eureka.registry.ResponseCache verwendet derzeit eine zweistufige Zwischenspeicherungsstrategie für Antworten. Ein readWrite-Cache mit einer Ablaufrichtlinie und ein readonly-Cache, der ohne Ablauf zwischenspeichert. | true |
eureka.server.disable-delta |
Überprüft, ob dem Client die Delta-Informationen bereitgestellt werden oder nicht. | false |
eureka.server.retention-time-in-m-s-in-delta-queue |
Ruft die Zeit ab, für die die Deltainformationen zwischengespeichert werden sollten, damit die Clients den Wert abrufen können, ohne ihn zu verpassen. | 0 |
eureka.server.delta-retention-timer-interval-in-ms |
Ermittelt das Zeitintervall, in dem die Aufgabe „Aufräumen“ aufwachen und auf abgelaufene Deltainformationen überprüfen soll. | 0 |
eureka.server.eviction-interval-timer-in-ms |
Ermittelt das Zeitintervall, in dem die Aufgabe, deren Instanzen ablaufen, aufwachen und ausgeführt werden soll. | 60000 |
eureka.server.sync-when-timestamp-differs |
Prüft, ob Instanzen synchronisiert werden sollen, wenn sich die Zeitstempel unterscheiden. | true |
eureka.server.rate-limiter-enabled |
Zeigt an, ob der Ratenbegrenzer aktiviert oder deaktiviert werden soll. | false |
eureka.server.rate-limiter-burst-size |
Eigenschaft Ratenbegrenzer, Token Bucket-Algorithmus. | 10 |
eureka.server.rate-limiter-registry-fetch-average-rate |
Eigenschaft Ratenbegrenzer, Token Bucket-Algorithmus. Gibt die durchschnittliche erzwungene Anforderungsrate an. | 500 |
eureka.server.rate-limiter-privileged-clients |
Eine Liste der zertifizierten Clients. Dies ist zusätzlich zu standardmäßigen Eureka Java-Clients. | N/V |
eureka.server.rate-limiter-throttle-standard-clients |
Zeigt an, ob für Standardclients eine Ratenbegrenzung gilt. Wenn dieser Wert auf FALSE festgelegt ist, werden nur nicht standardmäßige Clients mit einer begrenzten Rate bewertet. | false |
eureka.server.rate-limiter-full-fetch-average-rate |
Eigenschaft Ratenbegrenzer, Token Bucket-Algorithmus. Gibt die durchschnittliche erzwungene Anforderungsrate an. | 100 |
Häufig verwendete Konfigurationen
- auf Protokollierung bezogene Konfigurationen
- logging.level.*
- logging.group.*
- Alle anderen Konfigurationen unter dem Namespace logging.* sollten verboten sein, z. B. das Schreiben von Protokolldateien mithilfe der Verwendung von
logging.file
sollte verboten sein.
Aufruf zwischen Anwendungen
In diesem Beispiel erfahren Sie, wie Sie Java-Code für den Aufruf zwischen Anwendungen schreiben, die bei der Eureka Server für Spring-Komponente registriert sind. Wenn Container-Apps mit Eureka verbunden sind, kommunizieren sie untereinander über den Eureka-Server.
Das Beispiel erstellt zwei Anwendungen, eine aufrufende und eine aufgerufene. Beide Anwendungen kommunizieren untereinander mithilfe der Eureka Server für Spring-Komponente. Die aufgerufene Anwendung stellt einen Endpunkt zur Verfügung, der von der aufrufenden Anwendung aufgerufen wird.
Erstellen Sie die aufgerufene Anwendung. Aktivieren Sie den Eureka-Client in Ihrer Spring Boot-Anwendung, indem Sie der Klasse „main“ die Anmerkung
@EnableDiscoveryClient
hinzufügen.@SpringBootApplication @EnableDiscoveryClient public class CalleeApplication { public static void main(String[] args) { SpringApplication.run(CalleeApplication.class, args); } }
Erstellen Sie einen Endpunkt in der aufgerufenen Anwendung, der von der aufrufenden Anwendung aufgerufen wird.
@RestController public class CalleeController { @GetMapping("/call") public String calledByCaller() { return "Hello from Application callee!"; } }
Legen Sie den Namen der aufgerufenen Anwendung in der Anwendungskonfigurationsdatei fest. Zum Beispiel: application.yml.
spring.application.name=callee
Erstellen Sie die aufrufende Anwendung.
Fügen Sie die Anmerkung
@EnableDiscoveryClient
hinzu, um die Clientfunktionen von Eureka zu aktivieren. Erstellen Sie außerdem eineWebClient.Builder
-Bean mit der Anmerkung@LoadBalanced
, um Lastenausgleichsaufrufe an andere Dienste auszuführen.@SpringBootApplication @EnableDiscoveryClient public class CallerApplication { public static void main(String[] args) { SpringApplication.run(CallerApplication.class, args); } @Bean @LoadBalanced public WebClient.Builder loadBalancedWebClientBuilder() { return WebClient.builder(); } }
Erstellen Sie in der aufrufenden Anwendung einen Controller, der
WebClient.Builder
verwendet, um die aufgerufene Anwendung mithilfe des Anwendungsnamens „callee“ aufzurufen.@RestController public class CallerController { @Autowired private WebClient.Builder webClientBuilder; @GetMapping("/call-callee") public Mono<String> callCallee() { return webClientBuilder.build() .get() .uri("http://callee/call") .retrieve() .bodyToMono(String.class); } }
Jetzt verfügen Sie über eine aufrufende und eine aufgerufene Anwendung, die über Java-Komponenten von Eureka Server für Spring miteinander kommunizieren. Stellen Sie sicher, dass beide Anwendungen ausgeführt und an den Eureka-Server gebunden werden, bevor Sie den Endpunkt /call-callee
in der aufrufenden Anwendung testen.
Begrenzungen
Die Java-Komponente Eureka Server enthält eine Standardkonfiguration,
eureka.server.enable-self-preservation
, die auffalse
festgelegt ist. Diese Standardkonfiguration hilft zu vermeiden, dass Instanzen nach der Aktivierung der Selbsterhaltung nicht gelöscht werden. Wenn Instanzen zu früh gelöscht werden, könnten einige Anforderungen an nicht existierende Instanzen weitergeleitet werden. Wenn Sie diese Einstellung auftrue
ändern möchten, können Sie sie überschreiben, indem Sie Ihre eigenen Konfigurationen in der Java-Komponente festlegen.Der Eureka-Server verfügt nur über ein einziges Replikat und unterstützt keine Skalierung, so dass die Peer-Eureka-Server-Funktion nicht verfügbar ist.
Das Eureka-Dashboard ist nicht verfügbar.