2014-09-11 5 views
0

J'essaie de comprendre comment fonctionne le clustering dans Akka. Plus précisément, je suis intéressé par deux différents types de clusters:Akka Cluster Types

  • nœuds hétérogènes, où chaque « nœud » (JVM) du cluster contient un mélange de différents acteurs; et
  • Homogène nœuds, où chaque nodecontains tous les mêmes types d'acteurs

enter image description here

ci-dessus sont des exemples de ce que je veux dire par et hétérogène homogènes noeuds. Dans le premier (en haut) diagramme, un all-actors.jar est déployé à trois machines: myapp01, myapp02 et une machine AWS. Dans le deuxième diagramme (en bas), 3 types de systèmes d'acteurs sont déployés; 1 à chaque machine. Le modèle hétérogène a les avantages de la simplicité et rend le système Acteur dans son ensemble évolutif. Le modèle homogène permet une élasticité plus fine (peut-être avons-nous besoin de 3 fois plus d'acteurs "B" que "A" ou "C", etc.).

  1. Les deux types de regroupement (hétérogène et homogène) sont-ils pris en charge par Akka? Si ce n'est pas le cas, qu'est-ce qui serait nécessaire (ajouté au groupe existant) pour obtenir ces stratégies de regroupement? Si oui, comment est-ce que chaque type est configuré?
  2. Est-il possible de contrôler le nombre d'acteurs que vous voulez dans chaque noeud? Est-il possible de dire "sur myapp01 Je veux 500 A-200, Acteurs B Acteurs et 1000 C-acteurs"? Ou est-ce qu'Akka répond juste à la demande de messagerie et augmente/abaisse les différents acteurs automatiquement?
+1

* Personne * sur SO a déjà utilisé le regroupement avant Akka?!? – smeeb

Répondre

0

Après avoir fait quelques recherches, il se trouve le regroupement Akka n'a rien à voir avec le regroupement acteur des systèmes à travers JVMs, mais il conserve essentiellement les données de chaque acteur dans une synchronisation, le cache en mémoire de sorte que si le fil l'exécution de l'acteur est interrompue ou meurt, les données de l'acteur peuvent être utilisées pour régénérer un nouveau thread exécutant le même type d'acteur.

Alors Akka Clustering est comme Eraser mais au lieu de pour les acteurs d'Hollywood, des acteurs Akka.

+2

Il sert à regrouper les systèmes d'acteur sur les machines virtuelles Java. Voir http://doc.akka.io/docs/akka/2.3.4/scala/cluster-usage.html – sourcedelica

+0

Merci @sourcedelica (1) - mais qui ne semble être le cas pour la liaison Scala; la liaison Java ne semble pas fonctionner de cette façon. Même dans ce lien que vous avez envoyé, il n'y a aucune mention de grappes * homogènes * ou * hétérogènes *. – smeeb

+2

Il n'y a pas de support spécifique pour ce que vous appelez des clusters homogènes/hétérogènes dans Akka mais vous pouvez certainement utiliser ces types de clusters avec Akka. Le clustering Akka est essentiellement une fonctionnalité d'appartenance à un groupe, mais il y a d'autres fonctionnalités qui s'ajoutent à cela. Par exemple, en utilisant des rôles et des routeurs prenant en charge les clusters, vous pouvez créer vos propres clusters homogènes/hétérogènes. – sourcedelica

Questions connexes