Cache ​
Le système de cache d'Infrarust optimise les performances en stockant temporairement les réponses des serveurs.
Configuration ​
Le système de cache peut être configuré globalement dans config.yaml et personnalisé par serveur dans les configurations de proxy :
# Configuration globale du cache dans config.yaml
cache:
status_ttl_seconds: 30 # Durée de vie des entrées du cache de statut (en secondes)
max_status_entries: 1000 # Nombre maximum d'entrées dans le cache de statut
# Configuration spécifique au serveur dans proxies/*.yml
caches:
status_ttl_seconds: 15 # Remplace la durée de vie pour ce serveur
max_status_entries: 500 # Remplace le nombre maximum d'entrées pour ce serveurValeurs par défaut ​
Si non spécifiées, ces valeurs par défaut sont utilisées :
status_ttl_seconds: 30 secondesmax_status_entries: 1000 entrées
Types de cache ​
Cache de statut ​
Le cache de statut stocke les réponses ping/statut des serveurs :
- Réduit la charge sur les serveurs minecraft en mettant en cache les réponses de statut
- Offre des temps de réponse plus rapides pour les requêtes de liste de serveurs des clients
- Invalide automatiquement les entrées après expiration de la durée de vie
- Utilise le domaine et la version du protocole comme clés de cache
Avantages du cache de statut ​
- Protection : Protège les serveurs minecraft contre les afflux de requêtes de statut
- Performance : Réduit le temps de réponse pour l'écran de liste des serveurs
- Cohérence : Fournit des réponses stables même lorsque les serveurs minecraft sont occupés
Comportement du cache ​
Lorsqu'un client demande le statut d'un serveur :
- Infrarust vérifie si un statut en cache valide existe
- Si trouvé et non expiré, renvoie le statut en cache
- Si non trouvé ou expiré, transmet la requête au serveur minecraft
- Met en cache la nouvelle réponse pour les futures requêtes
Fonctionnalités avancées ​
Invalidation du cache ​
Les entrées du cache de statut sont invalidées :
- Automatiquement après expiration de la durée de vie
- Lorsque la configuration du serveur associé change
- Lorsque le serveur devient inaccessible
Gestion de la mémoire ​
Infrarust limite l'utilisation de la mémoire avec le paramètre max_status_entries, qui plafonne le nombre de réponses de statut mises en cache. Lorsque cette limite est atteinte, les entrées les plus anciennes sont évincées en premier.
Améliorations futures ​
Les fonctionnalités suivantes sont prévues mais pas encore implémentées :
- Limites de mémoire : Contrôle précis de l'utilisation de la mémoire
cache:
memory_limit_mb: 512 # Utilisation maximale de la mémoire
cleanup_interval: 60 # Intervalle de nettoyage en secondes- Compression du cache : Réduction de l'empreinte mémoire par compression
- Éviction intelligente : Stratégies d'éviction du cache plus sophistiquées
- Persistance du cache : Persistance optionnelle des données du cache sur disque
- Métriques de cache : Statistiques détaillées sur les performances du cache
Métriques du cache (Planifiées) ​
Dans les futures versions, le cache exposera des métriques détaillées :
- Ratio hits/misses
- Utilisation de la mémoire
- Temps de réponse moyen
- Nombre d'entrées actives
- Taux d'éviction
Ces métriques seront disponibles via le système de télémétrie d'Infrarust.