2016-02-19 3 views
0

Je regardais la documentation WASABi et je suis confus au sujet d'un aspect particulier de cette bibliothèque.Enterprise Autoscale Application Block (WASABi) <scale> d'un montant variable

Je dois créer une règle réactive personnalisée. Dites, cette règle s'exécute toutes les minutes et l'action "échelle" de cette règle devrait être d'augmenter de "x". Il semble que je peux définir l'action "échelle" à un nombre particulier (disons 1 ou 2), mais ne passe pas dans une variable calculée par, disons mon opérande personnalisé. Je comprends que je peux créer un opérande personnalisé pour vérifier ma condition, mais je veux que l'opérande personnalisé calcule combien l'action "scale" doit mettre à l'échelle le rôle Worker cible et ensuite passer cette valeur à "scale" action.

Existe-t-il un moyen de définir ces règles en dehors du XML pour y parvenir?

Toute aide serait grandement appréciée!

+0

Autant que je me souvienne, les actions peuvent incrémenter ou décrémenter le compte d'un nombre ou d'une proportion. Donc, si vous voulez un incrément ou une décrémentation dynamique, je pense que vous devrez [créer une action personnalisée] (https://msdn.microsoft.com/en-us/library/hh680921 (v = pandp.50) .aspx). Je pense que vous pouvez extraire les informations dont vous avez besoin à partir du 'IRuleEvaluationContext'. –

+0

En outre, je voudrais juste noter que WASABi est assez vieux maintenant et n'était pas inclus avec la dernière version d'EntLib parce qu'Azure a ajouté beaucoup de fonctionnalité Autoscaling intégrée. En outre, je sais que les versions du SDK azur avaient tendance à causer des maux de tête avec WASABi, donc je ne suis pas sûr de savoir comment cela fonctionne avec les versions actuelles. Juste une mise en garde - je ne l'ai pas utilisé depuis un moment donc vous avez probablement plus d'expérience avec ça que moi. –

+0

Je viens juste de commencer à le chercher et je ne l'ai jamais utilisé auparavant. Si tout va bien, cela fonctionne juste avec la dernière version –

Répondre

1

Les actions peuvent incrémenter ou décrémenter le compte d'un nombre ou d'une proportion. Donc, si vous voulez un incrément ou une décrémentation dynamique, je pense que vous aurez besoin de create a custom action. Je pense que vous pouvez extraire les informations dont vous avez besoin à partir de IRuleEvaluationContext.

Pour modifier le nombre d'instances, vous devez modifier la configuration de déploiement. Voir https://social.msdn.microsoft.com/forums/azure/en-US/dbbf14d1-fd40-4aa3-8c65-a2424702816b/few-question-regarding-changing-instance-count-programmatically?forum=windowsazuredevelopment&prof=required pour une discussion.

Vous devriez pouvoir le faire en utilisant les bibliothèques de gestion Azure pour .NET et le client ComputeManagement. Quelque chose comme:

+0

Merci pour cela !! Le bloc Enterprise Autoscale ne semble pas fonctionner avec la dernière version du SDK, mais cette gemme d'informations me permet essentiellement de déployer ma propre solution de mise à l'échelle. Pour le crédit de Rany Levy, il a suggéré quelque chose de similaire! edit: N'a pas réalisé, vous étiez Randy Levy :) –

+0

Lorsque je autoscale, le changement de configuration entraîne le redémarrage de toutes les instances.Y a-t-il un moyen d'empêcher ce redémarrage (par le biais du code ou d'une stratégie de déplacement des rôles dans des ensembles de disponibilité distincts)? –

+0

Je ne suis pas sûr. J'ai lu quelque chose sur l'utilisation de la fente de mise en scène et ensuite faire un échange. –