2011-09-06 20 views
5

Quando è necessario utilizzare Actors vs Remote Actors in Akka?Quando utilizzare gli attori locali o remoti?

Capisco che entrambi possono scalare una macchina, ma solo gli attori remoti possono scalare, quindi c'è un uso pratico della produzione del normale attore?

Se un attore remoto ha solo un piccolo sovraccarico di installazione iniziale e non ha nessun altro sovraccarico importante rispetto a quello di un normale attore, allora penserei che usare un attore remoto sarebbe lo standard, dal momento che può scalare e fuori con facilità. Anche se non c'è mai la necessità di ridimensionare il codice di produzione, sarebbe bello avere l'opzione (se non arriva con il bagaglio).

Qualsiasi opinione su quando utilizzare un attore o un attore remoto sarebbe molto apprezzato.

risposta

8

Gli attori remoti non possono scalare, sono solo riferimenti remoti a un attore locale su un'altra macchina.

Per Akka 2.0 introdurremo attori in cluster, che ti permetteranno di scrivere un'applicazione Akka e scalarla solo usando la configurazione.

2

Gli attori regolari possono essere utilizzati per inviare messaggi nel progetto locale. Come per gli attori remoti, è possibile utilizzarlo per inviare messaggi a progetti dipendenti connessi al progetto che invia il messaggio.

prega di fare riferimento qui per gli attori Akka remoti

http://doc.akka.io/docs/akka/snapshot/scala/remoting.html

1

La domanda chiede "Se un attore a distanza ha solo un setup iniziale minore in testa e non ha alcuna altra grande in testa, allora penserei che l'utilizzo un attore remoto sarebbe lo standard ". Eppure il Fallacies of distributed computing sottolinea che si tratta di un errore di progettazione per supporre che il servizio di remoting con qualsiasi tecnologia non abbia un sovraccarico. Hai il sovraccarico di copiare i messaggi in byte e trasmetterli attraverso l'interfaccia di rete. Hai anche tutta la complessità di processi diversi in su, in giù, in stallo o irraggiungibili e della rete con intoppi che portano a messaggi persi, duplicati o riordinati.

This great article ha esempi reali di strani errori di rete che rendono difficile effettuare il remoting. Il progetto Akka guida Roland Kuln nel suo numero free video course about akka e afferma che nella sua esperienza per ogni 1T di messaggi di rete inviati, vede una corruzione. Notes on Distributed Systems for Young Bloods dice che "i sistemi distribuiti tendono ad avere bisogno di una distribuzione effettiva, non simulata, per eliminare i loro bug", quindi anche i buoni test unitari non creeranno un sistema perfetto. C'è un sacco di consigli sul fatto che il remoting non è "gratuito", ma un duro lavoro per essere perfetto.

Se è necessario utilizzare la comunicazione remota per la disponibilità o per passare a una scala enorme, tenere presente che akka esegue la consegna at-least-once con possibile duplicazione. Pertanto, è necessario assicurarsi che i messaggi duplicati non creino risultati errati.

Nel momento in cui si inizia a utilizzare il servizio remoto, si dispone di un sistema distribuito che crea sfide che vengono discusse in. A meno che non stiate facendo semplicemente cose come calcolatori senza stato che sono idempotenti ai messaggi duplicati, le cose si complicano. Uno dei compiti su quel corso video di akka al link sopra è quello di creare un archivio di valori-chiave replicato che possa gestire i messaggi persi scrivendo la logica da solo. È tutt'altro che un compito facile. Lo stato distribuito tra diversi processi diventa molto difficile, gli attori incapsulano, quindi la distribuzione degli attori può diventare molto difficile, a seconda della coerenza e dei requisiti di disponibilità del sistema che stai costruendo.

Tutto ciò implica che se si riesce a evitare i servizi remoti e si ottiene ciò che è necessario ottenere, si consiglia di evitarlo. Se hai bisogno di servizi remoti, Akka lo rende facile grazie al suo location transparency. Quindi, mentre è un ottimo strumento da portare con voi sul posto di lavoro; dovresti ricontrollare se il lavoro richiede tutti gli strumenti o solo quelli più semplici nella scatola.

Problemi correlati