Notre application a un nœud de serveur qui délègue des délégués à de nombreux nœuds de travail qui sont des acteurs distants. Cette application devrait évoluer en augmentant le nombre de nœuds de travail.Akka Remoting pour une application de serveur de grille
Nous utilisons Akka 1.3 RC4, et faire quelque chose de mal pari parce que nous remarquons ce qui suit:
1> Les nouvelles prises sont ouvertes lorsque les tâches sont envoyés aux nœuds de travail du serveur. Les prises se ferment une fois la tâche terminée. Y a-t-il un avantage par rapport aux raisons pour lesquelles les prises ne sont pas toujours ouvertes? Y a-t-il un conf que nous devons modifier? 2> Lorsque nous listons le nombre de descripteurs de fichiers ouverts par le PID du processus serveur, le nombre augmente proportionnellement au nombre de sockets ouverts (totalement attendus). Le but de cette application est de mettre à l'échelle d'énormes fermes de calcul (globales), mais une fois la limite des descripteurs de fichiers atteinte, le nœud de serveur ne peut plus ouvrir de sockets pour d'autres noeuds de travail. Je me demande si nous devrions changer la conception et l'approche d'une autre manière.
Une autre chose que nous envisageons actuellement est de passer à Akka 2, mais nous ne savons pas si c'est la meilleure façon de résoudre ce genre de problème.
Merci!
Merci Victor. Essayer RC6 tout de suite, mais je pense que nous passerons à la version 2.0 éventuellement (la migration de code prend du temps) –
Merci pour votre réponse rapide! En ce qui concerne le point 1 de votre conseil ci-dessus: Même si j'ai: \ n "connection-timeout = 1000 # Nombre dans l'unité de temps" \ n dans la section remote/server de mon akka.conf, les prises obtiennent ouvert et fermé presque immédiatement (dans une seconde environ du message envoyé); c'est-à-dire que les prises ne restent pas ouvertes pendant 1000 secondes comme prévu. J'ai eu ce même comportement en utilisant à la fois Akka 1.2 et Akka 1.3-RC6. Pourriez-vous s'il vous plaît nous donner un pointeur sur ce que je fais peut-être incorrectement? –
En ce qui concerne no1, j'ai dit "read timeout": read-timeout = 120 # Nombre dans l'unité de temps. –