Akka Remoting per un'applicazione server grid
Domanda
La nostra applicazione ha un server a nodo che i delegati lavorano per numerosi lavoratori-nodi che sono attori remoti. Questa applicazione è prevista per scala, aumentando il numero di nodi dei lavoratori.
Stiamo utilizzando Akka 1.3-RC4, e la scommessa facendo qualcosa di sbagliato, perché si notano i seguenti:
1> Nuove prese sono aperte quando le attività vengono inviati ai nodi dei lavoratori dal server. Le prese chiudono una volta il completamento del compito. C'è un vantaggio rispetto / ragione per cui le prese non sono sempre tenute aperte? C'è qualche conf che dobbiamo modificare?
2> Quando si elencano il numero di descrittori di file aperti dal processo server PID, il numero spara alto proporzionale al numero di socket aperti (totalmente attesi). L'obiettivo di questa applicazione è quello di scala a enormi (globali) di elaborazione-fattorie tuttavia, una volta raggiunto il limite di descrittori di file server-nodo non può socket aperti per eventuali altri lavoratori-nodi. Mi chiedo se dovremmo cambiare il design e l'approccio in un altro modo.
Un'altra cosa che stiamo considerando attivamente è quello di spostare a Akka 2 però, non è sicuro se ha un modo migliore per risolvere questo tipo di problema.
Grazie!
Soluzione
- È possibile aumentare il timeout di lettura per i collegamenti, per tenerli aperti più a lungo
- Si dovrebbe passare a 1.3-RC6 in quanto risolve alcuni problemi di prestazioni remote-correlati
- Akka sia 2,0 predefinito resuses connessioni in entrata per i messaggi in uscita, che porta a molto scalabilità meglio per il vostro caso d'uso
Spero che questo aiuti,
Saluti, v