Question

Je crée une application que je souhaite mettre en nuage. Cette application a une fonction principale.

Il héberge des sessions de socket client au nom d’autres utilisateurs (pensez à Beejive IM pour iPhone, où il héberge des sessions de messagerie instantanée pour que les clients conservent l’état de ces réseaux, ce qui permet au client de se connecter / déconnecter à sa gu Connexion réseau IM).

Maintenant, comme je l'avais prévu, une "instance de travail" ne peut probablement gérer qu'un nombre limité de sessions client (par exemple, 50 000 pour des raisons argumentatives). Ces sessions seront des tâches de travail très longues.

Le problème que j’essaie de comprendre est que j’aurai parfois besoin d’exécuter des tâches pour des sessions client spécifiques (par exemple: si je dois déconnecter une session client). Avec Azure, serais-je en mesure de mettre en file d'attente une tâche plus petite que seule l'instance hébergeant cette session client spécifique serait en mesure de retirer de la file d'attente?

À l’heure actuelle, je considère GoGrid comme mon fournisseur et je résous ce problème en utilisant le logiciel Active Messaging Queue d’Apache. Mon application Web met en file d'attente les tâches de déconnexion affectées à un identifiant d'instance spécifique. Chaque session client est donc affectée à un identifiant d'instance spécifique. L’instance élimine alors uniquement les tâches de déconnexion qui lui sont attribuées.

Je me demande s'il est possible de faire quelque chose de similaire sur Azure et comment je le ferais en général. J'aime l'idée de ne pas avoir à configurer de nombreuses machines virtuelles différentes pour évoluer, mais plutôt de déployer un seul package. En outre, il serait intéressant d’utiliser les files d’attente Azure au lieu d’intégrer un produit tiers tel que Apache ActiveMQ ou même MSMQ.

Était-ce utile?

La solution

Je serais très préoccupé par la création d'une application de production sur Azure jusqu'à ce que l'ensemble des fonctionnalités, les tarifs et les conditions de licence soient finalisés. Pour commencer, vous ne pouvez même pas faire une comparaison des coûts entre cela et par exemple. GoGrid ou EC2 ou Mosso. Donc, je ne vois pas comment cela pourrait devenir un favori. De plus, nous savons que tous ces systèmes auront des problèmes à mesure qu’ils mûrissent. Les services d'Amazon sont beaucoup plus utilisés que tous les autres et sont accessibles au public depuis de nombreuses années. IMHO choisir Azure est une recette pour la douleur car ils se stabilisent.

Avez-vous considéré le service de file d'attente simple d'Amazon pour la file d'attente?

Autres conseils

Je pense que vous pouvez absolument utiliser Windows Azure pour cela. Ma recommandation serait de créer une file d'attente pour chaque session que vous suivez. Mettez ensuite le message de déconnexion en file d'attente (par exemple) dans la file d'attente de cette session. L'instance de travail qui gère cette connexion doit être la seule à interroger cette file d'attente. Elle doit donc gérer l'exécution de la tâche sur cette connexion.

En ce qui concerne les connexions de socket d'hébergement d'applications auxquelles les clients doivent se connecter, je vérifierais ce qui est autorisé, car seules les connexions HTTP et HTTPS sont autorisées avec Azure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top