J'ai une application qui parle à plusieurs sources internes et externes en utilisant des services SOAP, REST ou simplement en utilisant des procédures stockées de base de données. Évidemment, la performance et la stabilité sont un problème majeur auquel je suis confronté. Même lorsque les points de terminaison fonctionnent à leur meilleur niveau, pour les grands ensembles de données, je vois facilement les appels qui prennent 10 secondes. Par conséquent, j'essaie d'améliorer les performances de mon application en effectuant une lecture anticipée des données et en les stockant localement, afin que les opérations de lecture soient au moins rapides.Problèmes de performances avec les dépendances de données externes
Alors que mon application est le principal consommateur et producteur de données, certaines données peuvent également changer de l'extérieur de mon application que je n'ai aucun contrôle. Si j'utilise la mise en cache, je ne saurais jamais quand invalider le cache lorsque de telles données changent de l'extérieur de mon application. Je pense donc que ma seule option est d'avoir un programmateur de travail en cours d'exécution qui met régulièrement à jour la base de données. Je pourrais hiérarchiser les utilisateurs en fonction de la fréquence à laquelle ils se connectent et utilisent l'application. Je parle de 50 000 utilisateurs, et d'au moins 10 points de terminaison qui sont terriblement lents et peuvent parfois prendre une minute pour un seul appel. Est-ce que quelque chose comme Quartz me donnerait l'échelle dont j'ai besoin? Et comment pourrais-je contourner le cédulaire devenant un point d'échec unique?
Je ne cherche que quelque chose qui ne nécessite pas de maintenance élevée et qui accélère au moins certains des sous-systèmes les moins compliqués, sinon la plupart. Aucune suggestion?
S'il vous plaît préciser ce que ces 50.000 utilisateurs font. Comment interagissent-ils avec ces données provenant de sources multiples? Cherchez-vous activement toutes ces données à la demande? –
Considérez-le comme un portail où un utilisateur peut commander des produits, effectuer des paiements, configurer le produit, afficher des rapports sur l'utilisation, recevoir des alertes, mettre à niveau/rétrograder, utiliser la billetterie, etc.C'est une application J2EE typique, un peu comme un portail bancaire mais très diversifié. Actuellement, tout est récupéré à la demande. – Langali
Ok, voir ma réponse ci-dessous, et laissez-moi savoir si vous avez d'autres questions. –