2012-06-07 3 views
2

Je suis récemment tombé sur this article, discutant de la façon de tirer parti de mod_cluster pour créer des clusters Tomcat dynamiques. Ma société est sur le point de faire un premier saut dans le cloud EC2 d'Amazon et déploiera notre application sur Tomcat 7. Nous aimerions profiter de mod_cluster pour pouvoir adapter dynamiquement notre application au fur et à mesure que le trafic augmente. EC2, cependant, ne prend pas en charge l'utilisation de la multidiffusion, ce qui explique comment ce document vous permet de configurer votre configuration de cluster.Tomcat, mod_cluster et Amazon EC2?

Quelqu'un a-t-il configuré mod_cluster pour les clusters dynamiques Tomcat dans l'environnement EC2? J'ai vu une petite mention de tirer parti de S3 pour stocker des informations sur les membres du cluster, mais je n'ai trouvé aucune documentation expliquant comment le faire. Quelqu'un at-il vu de bons docs ou tutoriels sur le sujet? Expérience personnelle? J'apprécierais n'importe quelle perspicacité que vous pouvez me donner.

Répondre

1

Je n'ai jamais utilisé mod_cluster, mais vous pourriez vouloir regarder dans Elastic Beanstalk d'Amazon puisque votre implémentation est en Java. Ma compréhension est que vous écrivez votre webapp, empaquetez-la comme un JAR et demandez simplement à Amazon de vous donner plus de puissance quand vous en avez besoin et moins quand vous ne le faites pas. Fondamentalement, c'est l'ensemble de votre architecture en tant que service: vous fournissez simplement le fichier WAR.

+0

J'ai regardé Elastic Beanstalk.Cependant, nous avons besoin de plus de contrôle sur l'environnement (base de données, etc.) qu'EB fournit. – Shadowman

+0

Je suis intéressé par ce que vous n'aurez pas le contrôle, ici. Je n'ai pas utilisé EB moi-même, donc je ne connais pas vraiment ses capacités mais je pourrais avoir quelques suggestions. –

1

Comme je l'ai lu, le but principal de l'article est d'atteindre LoadBalancing quand il y a un grand nombre d'utilisateurs accédant à l'application à une instance. Dans l'environnement AWS, ceci peut être facilement réalisé en utilisant Elastic Beanstalk comme suggéré par Christopher Schulz. Je ne suis pas sûr de ce contrôle que vous attendez, mais en utilisant Elastic Beanstalk, vous pouvez contrôler l'application pour Autoscaling, Loadbalancing, Définir le nombre maximum et minimum d'instances, alertes par courriel lorsque l'application tombe en panne ou change pour état différent. Augmenter diminuer l'espace heapspace/permgen JVM. Faites pivoter les journaux Tomcat vers S3. Modifiez la gestion du déclencheur en fonction de l'utilisation du processeur/du réseau entrant/sortant, etc., Passez à l'AMI personnalisée pour les modifications personnalisées dans votre environnement de production. Elastic Beanstalk a beaucoup d'options pour avoir un contrôle complet sur votre application. S'il vous plaît laissez-moi savoir si vous avez des questions concernant Beanstalk.

+0

Notre objectif principal est l'équilibrage de la charge, ainsi que le basculement en cas de panne d'un serveur. Nous avons jeté un rapide coup d'œil à Elastic Beanstalk, mais nous voulions la flexibilité que la gestion directe de nos propres serveurs permettrait de fournir à la place. – Shadowman

+0

Pour les tests de flexibilité du Loadblancing Elastic Beanstalk & Auto-Scaling, j'ai utilisé Apache Jmeter (test de charge et test de stress). Les résultats étaient suffisants, à chaque fois que la charge (nombre de requêtes) augmente, beanstalk redimensionne les instances et diminue lorsque les demandes sont réduites. –

4

Il n'y a pas de problème avec Mod_cluster dans le cloud EC2 d'Amazon à condition que vous utilisez la configuration liste de proxy.

Multicast est utilisé pour l'équilibreur httpd pour se faire connaître. Les nouveaux noeuds de travail peuvent le récupérer et s'enregistrer auprès de l'équilibreur. Configuration zéro.

En l'absence de multidiffusion disponible, la publicité est désactivée. Ce que vous devez faire est de dire aux travailleurs où chercher l'équilibreur. La configuration de l'équilibreur Httpd, contrairement à mod_jk, n'a pas besoin d'être modifiée (vous ne spécifiez rien sur un worker).

Pour Tomcat6:

<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" 
    proxyList="mybalacer.com:port" ... 
    ... 
/> 

Pour AS7:

<subsystem xmlns="urn:jboss:domain:modcluster:1.1"> 
    <mod-cluster-config advertise-socket="modcluster" proxy-list="mybalacer.com:port" ... 
    ... 
    </mod-cluster-config> 
</subsystem> 

Amusez-vous bien.