2010-10-14 4 views
1

Je recherche des solutions middleware existantes qui traitent des aspects de clustering/distribution de services pour l'équilibrage de charge et la disponibilité. Je cherche à construire ma propre infrastructure pour cela basée sur un système de messagerie (plus précisément, JMS). Cependant, si possible, je préfère utiliser quelque chose qui existe déjà.Quelles sont les bonnes solutions middleware pour les services en cluster/distribués?

Le système doit pouvoir exécuter divers services sur un certain nombre d'ordinateurs. En fonction des descriptions de service, le système devrait être capable de déterminer le nombre d'instances d'un service spécifique à démarrer dans le cluster. En fonction des demandes de service en attente, il convient d'ajuster dynamiquement le nombre de services en cours d'exécution. Les services de surveillance et le déploiement de nouvelles versions de services doivent également être gérés par le système. Par services, je veux dire "unités de fonctionnalité indépendantes" qui ont une interface prédéfinie. Les clients ne connaissent que l'interface et le middleware doit veiller à ce que le service s'exécute sur suffisamment de nœuds pour pouvoir répondre aux demandes entrantes via l'interface.

Cela devrait être quelque chose qui s'intègre bien avec Java. Certains de mes services sont implémentés en tant que code natif, mais j'ai une bonne solution pour les intégrer dans un service basé sur Java. J'ai examiné certaines solutions middleware/ESB comme ICE et Mule mais je ne les ai pas trouvées pour traiter les aspects du provisionnement de service de charge dynamique que j'ai décrit ci-dessus très bien (le cas échéant). Je me demande donc ce qui pourrait être d'autre là-bas que quelqu'un ici voudrait recommander de jeter un oeil à ...

Répondre

1

Je vous recommande de regarder plus profondément dans OSGi:

  • il a une assez dynamique système de module qui vous permet de vagabonder vos services à travers le réseau
  • il y a des offres existantes open-source que vous pouvez accumulation sur: Eclipse Equinox et Virgo, Apache Felix et Karaf, Knopflerfish, Concierge, Glassfish 3, etc (comparison)
  • que pour l'accès distant côté, la OSGi 4,2 a services à distance de spécification pour lequel il existe plusieurs implémentations là-bas. Plus particulièrement, ECF semble être une implémentation qui pourrait satisfaire vos besoins, si vous voulez utiliser JMS (article on dzone).

Comme note finale, vous pouvez jeter un oeil à Paremus Service Fabric - de la description, il semble tout à fait semblable à la bête que vous essayez de construire (sauf qu'il utilise JINI au lieu de JMS). Si rien d'autre, il pourrait être une source d'inspiration. Ils avaient également l'habitude d'avoir une version open-source appelée Newton mais qui a été fermée par manque d'intérêt. Il était mentioned qu'il a vécu sous le nom de Service Fabric Community Edition mais je ne pouvais pas trouver actuellement de référence sur leur site Web (le plus probablement c'était juste cancelled).

Enfin, voici un autre projet d'inspiration: Bundle-Bee - transparent, grid-distributed OSGi computing. Il y a probablement plus de projets similaires.

+0

Excellente information.Les approches basées sur OSGi sont très intéressantes et je pensais déjà à OSGi pour construire les conteneurs de service de toute façon, donc cela pourrait convenir. Merci! – VoidPointer

+0

Si cela répond à votre question, pourquoi ne pas accepter ma réponse? ;-) Voir aussi: http://stackoverflow.com/faq#howtoask –

Questions connexes