Question

Quels sont les outils pour atteindre une haute disponibilité pour les applications Java Web.

Était-ce utile?

La solution

L'approche principale à utiliser est pas un outil. Il est appelé « logiciel de qualité. » - à savoir que vous devez gérer toutes vos ressources (y compris la synchronisation) correctement

Apache Hadoop est quelque chose que vous pouvez utiliser pour la distribution et mise à l'échelle de votre système. Mais ce qui est pour énorme applications .

Charger L'équilibrage est quelque chose à examiner aussi bien .

Autres conseils

Peut-être que vous êtes à la recherche d'une solution de clustering? Il y a la version OpenSource de JVM de terre cuite Clustering

L'élimination des points de défaillance grâce à la redondance à tous les niveaux de l'application. Vous pouvez vous poser des questions le long des lignes de « ce qui se passe si X échoue » et trouver des moyens d'atténuer ce risque.

Il y a au moins deux aspects principaux, vous devez aborder:

  1. opérationnel
  2. Architecture, design, code

Chacun de ces éléments sont de grandes questions. Par exemple, il y a quelques bons sites dédiés à ces (voir serverfault.com et stackoverflow.com, respectivement).

Les considérations opérationnelles sont: déploiements d'échelle, y compris l'équilibrage de charge, la reprise après incident, un CDN si possible, et de surveillance. Considérations de déploiement en cours sont également importants.

Architecture -> considérations de code sont nombreux et importants. De l'architecture de votre solution, la mise en page de votre code pour la maintenabilité et les plus difficiles à atteindre: la décision correcte. Ma meilleure suggestion: quelqu'un de location avec l'expérience. Ce défaut, lire des livres et comme de quelqu'un avec l'expérience.

En outre, dans le monde Java, il est très important de se réconcilier avec celui-ci fait important: il a été probablement écrit avant. C'est une super nouvelle! Tant de gens très très lumineux ont passé d'innombrables heures à écrire du code pour vous et ont librement disponibles dans des endroits comme [Jakarta] Apache, Google Code, Codehaus, Sourceforge, et de nombreux autres sites open source. Plus de recherche que vous faites dans votre question, plus vous trouverez ces joueurs qui apparaissent. Une compétence importante consiste à déterminer quel logiciel disponible est un bon moyen pour vous.

Les gens ont contribué d'autres réponses avec des technologies spécifiques de choix, dont beaucoup sont bonnes suggestions, mais tout cela se résume au problème réel que vous essayez de résoudre, et que vous savez ce qui est (bien, la doesn question » t tell nous de toute façon. D)

Pour commencer, vous aurez besoin:

  1. Une application web qui peut être exécuté sur de multiples serveurs web simultanément.
  2. Un frontal d'équilibrage de charge qui peut détecter le trafic échec-serveurs Web et route vers d'autres instances en direct. Cette partie n'a pas besoin d'être en Java. Vous aurez besoin de trouver le point d'intégration entre votre équilibreur de charge et le conteneur web-app.

Après avoir la configuration initiale en cours, vous aurez besoin de trouver d'autres points de probables de défaillance comme des serveurs de bases de données, le même serveur d'équilibrage de charge, serveur DNS, etc., et puis essayez d'ajouter de la redondance et de basculement de commutation à ces couches trop .

Vous devriez également envisager des solutions matérielles comme RAID, SAN, etc.

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