2009-01-14 5 views
0

J'ai deux applications backend qui fournissent les mêmes fonctions et sont situées sur deux machines séparées (en fait, il s'agit de faire une balance de charge). Ainsi, ils gèrent les requêtes client frontend de la même manière. Je veux collecter des statistiques sur tous les clients connectés (c'est-à-dire, quel est le composant le plus utilisé dans l'application graphique du client ou quelque chose comme ça) et envoyer le résultat à tous les clients toutes les secondes. Je pense à calculer séparément ces statistiques sur chaque composant backend et à additionner les deux dans ce cas j'ai un ensemble d'options comme faire une sorte de communication entre les composants backend, ou simplement faire une petite table dans la DB globale et chaque mise à jour backend la table puis sélectionnez et envoyer à ses clients mais cela peut diminuer les performances que je veux envoyer les statistiques à chaque secondeComment calculer les statistiques sur une machine différente et les combiner à nouveau?

je besoin d'une aide

+0

Pourquoi avez-vous besoin d'un flux constant de statistiques mises à jour? Les clients dépendent-ils de cette information? –

+0

Oui c'est une caractéristique –

Répondre

0

je besoin d'une preuve qu'une cession arbitraire (ou aléatoire) n'était pas assez bon avant d'investir une solution plus complexe. Conservez des statistiques sur chaque machine et comparez leurs facteurs de charge en fonction d'une affectation arbitraire (la seconde en cours est impaire, choisissez la machine 1, la seconde est paire, choisissez 2) en premier. Si cela ne fonctionne pas, alors vous pouvez commencer à chercher un meilleur algorithme. FWIW, c'est exactement ainsi que nous assignons les imprimantes par défaut dans nos laboratoires informatiques sur le campus pour plus de 1000 machines. Notre charge sur les différentes imprimantes dans chaque laboratoire est répartie uniformément.

Questions connexes