Mon besoin est d'agréger les statistiques en temps réel d'un serveur d'applications Web. Par exemple:Comment implémenter la base de données de statistiques en mémoire Java/Scala?
- Combien de demandes de type de contenu X ont été fait
- Combien de temps qu'il faut pour traiter la demande de type Y
Et ainsi de suite.
Ces données doivent être entièrement en mémoire, pas dans un fichier, pour de meilleures performances. Il ne consigne pas toutes les requêtes, mais stocke uniquement les compteurs de différents aspects.
Le moyen le plus simple que je connaisse est de stocker les valeurs dans une table de type SQL et de faire des requêtes de type SQL. L'avantage est que l'indexation est disponible immédiatement sans effort de développement. Je suppose que certaines bases de données Java intégrées comme Apache Derby feraient le travail.
L'autre solution consiste à implémenter une collection (disons une liste) et une table de hachage pour chaque "colonne d'index". De cette façon, tout est fait avec l'API des collections Java/Scala, mais je dois implémenter moi-même le mécanisme d'indexation, le tester, le maintenir, etc.
Donc, ma question est de savoir de quelle façon est-ce que vous préférez, et s'il y a d'autres moyens de mettre en œuvre facilement et rapidement cette fonctionnalité?
Merci.
Je viens de découvrir RRDtool. Je me demande si c'est la façon préférée d'aller au lieu de réinventer la roue. Il y a aussi l'implémentation Java appelée rrd4j (https://rrd4j.dev.java.net/) –