Configurer les paramètres du composant Eureka Server pour Spring dans Azure Container Apps
Eureka Server for Spring est un mécanisme de découverte centralisée des services pour les microservices. Utilisez l’aide qui suit pour savoir comment configurer et gérer votre composant Eureka Server pour Spring.
Afficher
Vous pouvez afficher les détails d’un composant individuel par nom à l’aide de la commande show
.
Avant d’exécuter la commande suivante, remplacez les espaces réservés entourés de <>
par vos valeurs.
az containerapp env java-component eureka-server-for-spring show \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--name <JAVA_COMPONENT_NAME>
List
Vous pouvez répertorier tous les composants Java inscrits à l’aide de la commande list
.
Avant d’exécuter la commande suivante, remplacez les espaces réservés entourés de <>
par vos valeurs.
az containerapp env java-component list \
--environment <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP>
Annuler la liaison
Pour supprimer une liaison d’une application conteneur, utilisez l’option --unbind
.
Avant d’exécuter la commande suivante, remplacez les espaces réservés entourés de <>
par vos valeurs.
az containerapp update \
--name <APP_NAME> \
--unbind <JAVA_COMPONENT_NAME> \
--resource-group <RESOURCE_GROUP>
Liste de configurations autorisées pour votre composant Eureka Server pour Spring
La liste suivante détaille les configurations prises en charge. Vous trouverez plus de détails dans Spring Cloud Eureka Server.
Remarque
Veuillez envoyer des tickets de support pour demander des nouvelles fonctionnalités.
Options de configuration
La commande az containerapp update
utilise le paramètre --configuration
pour contrôler la configuration du Eureka Server pour Spring. Vous pouvez utiliser plusieurs paramètres à la fois tant qu’ils sont séparés par un espace. Vous trouverez plus de détails dans la documentation Spring Cloud Eureka Server.
Les paramètres de configuration suivants sont disponibles sur la propriété de configuration eureka.server
.
Nom | Description | Valeur par défaut |
---|---|---|
eureka.server.enable-self-preservation |
Lorsqu’il est activé, le serveur effectue le suivi du nombre de renouvellements qu’il doit recevoir du serveur. Chaque fois que le nombre de renouvellements passe sous le pourcentage de seuil défini par eureka.server.renewal-percent-threshold. La valeur par défaut est définie sur true sur le serveur Eureka d’origine, mais dans le composant Java Eureka Server, la valeur par défaut est définie sur false . Consultez Limitation du composant Java Eureka Server pour Spring. |
false |
eureka.server.renewal-percent-threshold |
Le pourcentage minimal de renouvellements attendus des clients au cours de la période spécifiée par eureka.server.renewal-threshold-update-interval-ms. Si les renouvellements passent en dessous du seuil, les expirations sont désactivées si l’option eureka.server.enable-self-preservation est activée. | 0.85 |
eureka.server.renewal-threshold-update-interval-ms |
L’intervalle selon lequel le seuil spécifié dans eureka.server.renewal-percent-threshold doit être mis à jour. | 0 |
eureka.server.expected-client-renewal-interval-seconds |
L’intervalle selon lequel les clients doivent envoyer leurs pulsations. La valeur par défaut est de 30 secondes. Si les clients envoient des pulsations à des fréquences différentes, par exemple toutes les 15 secondes, ce paramètre doit être ajusté en conséquence, sinon l’auto-préservation ne fonctionnera pas comme attendu. | 30 |
eureka.server.response-cache-auto-expiration-in-seconds |
Obtient la durée pendant laquelle la charge utile du Registre doit être conservée dans le cache si elle n’est pas invalidée par des événements de modification. | 180 |
eureka.server.response-cache-update-interval-ms |
Obtient l’intervalle de temps selon lequel le cache de la charge utile du client doit être mis à jour. | 0 |
eureka.server.use-read-only-response-cache |
com.netflix.eureka.registry.ResponseCache utilise actuellement une stratégie de mise en cache à deux niveaux pour les réponses. Un cache en lecture-écriture avec une stratégie d’expiration et un cache en lecture seule qui met en cache sans expiration. | true |
eureka.server.disable-delta |
Vérifie si les informations delta peuvent ou non être fournies au client. | false |
eureka.server.retention-time-in-m-s-in-delta-queue |
Obtenir la durée pendant laquelle les informations delta doivent être mises en cache pour que les clients puissent récupérer la valeur sans la manquer. | 0 |
eureka.server.delta-retention-timer-interval-in-ms |
Obtenir l’intervalle de temps selon lequel la tâche de nettoyage doit sortir de veille et rechercher les informations delta expirées. | 0 |
eureka.server.eviction-interval-timer-in-ms |
Obtenir l’intervalle de temps selon lequel la tâche qui détermine l’expiration des instances doit sortir de veille et s’exécuter. | 60000 |
eureka.server.sync-when-timestamp-differs |
Vérifie s’il faut synchroniser des instances lorsque l’horodatage diffère. | true |
eureka.server.rate-limiter-enabled |
Indique si le limiteur de débit doit être activé ou désactivé. | false |
eureka.server.rate-limiter-burst-size |
Limiteur de débit, propriété d’algorithme de compartiment de jetons. | 10 |
eureka.server.rate-limiter-registry-fetch-average-rate |
Limiteur de débit, propriété d’algorithme de compartiment de jetons. Spécifie le taux de requête appliqué moyen. | 500 |
eureka.server.rate-limiter-privileged-clients |
Une liste de clients certifiés. Ceci s’ajoute aux clients Java eureka standard. | S/O |
eureka.server.rate-limiter-throttle-standard-clients |
Indiquer si la limite de débit concerne les clients standard. Si cette valeur est false, seuls les clients non standard seront soumis à une limitation du débit. | false |
eureka.server.rate-limiter-full-fetch-average-rate |
Limiteur de débit, propriété d’algorithme de compartiment de jetons. Spécifie le taux de requête appliqué moyen. | 100 |
Configurations courantes
- configurations relatives à la journalisation
- logging.level.*
- logging.group.*
- Toutes les autres configurations sous l’espace de noms logging.* doivent être interdites. Par exemple, l’écriture de fichiers journaux avec
logging.file
doit être interdite.
Appel entre applications
Cet exemple montre comment écrire du code Java pour appeler entre les applications inscrites auprès du composant Eureka Server pour Spring. Lorsque les applications conteneur sont liées à Eureka, elles communiquent entre elles via le serveur Eureka.
L’exemple crée deux applications, un appelant et un appelé. Les deux applications communiquent entre elles à l’aide du composant Eureka Server pour Spring. L’application appelée expose un point de terminaison appelé par l’application appelante.
Créez l’application appelée. Activez le client Eureka dans votre application Spring Boot en ajoutant l’annotation
@EnableDiscoveryClient
à votre classe principale.@SpringBootApplication @EnableDiscoveryClient public class CalleeApplication { public static void main(String[] args) { SpringApplication.run(CalleeApplication.class, args); } }
Créez un point de terminaison dans l’application appelée par l’application appelante.
@RestController public class CalleeController { @GetMapping("/call") public String calledByCaller() { return "Hello from Application callee!"; } }
Définissez le nom de l’application appelée dans le fichier de configuration de l’application. Par exemple, application.yml.
spring.application.name=callee
Créez l’application appelante.
Ajoutez l’annotation
@EnableDiscoveryClient
pour activer la fonctionnalité du client Eureka. Créez également un beanWebClient.Builder
avec l’annotation@LoadBalanced
pour effectuer des appels à charge équilibrée vers d’autres services.@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(); } }
Créez un contrôleur dans l’application appelante qui utilise
WebClient.Builder
pour appeler l’application appelée à l’aide de son nom d’application, appelée.@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); } }
Vous disposez maintenant d’une application appelante et d’une application appelée qui communiquent entre elles à l’aide de composants Java Eureka Server pour Spring. Assurez-vous que les deux applications s’exécutent et sont liées au serveur Eureka avant de tester le point de terminaison /call-callee
dans l’application appelante.
Limites
Le composant Java Eureka Server est fourni avec une configuration par défaut,
eureka.server.enable-self-preservation
, définie surfalse
. Cette configuration par défaut permet d’éviter les moments où les instances ne sont pas supprimées une fois que l’auto-conservation est activée. Si des instances sont supprimées trop tôt, certaines requêtes peuvent être dirigées vers des instances inexistantes. Si vous souhaitez redéfinir ce paramètre surtrue
, vous pouvez le remplacer en définissant vos propres configurations dans le composant Java.Le serveur Eureka n’a qu’un seul réplica et ne prend pas en charge la mise à l’échelle, ce qui rend la fonctionnalité de serveur Eureka homologue indisponible.
Le tableau de bord Eureka n’est pas disponible.