Ho questo dubbio persistente riguardo all'importanza dei router Akka
. Ho usato Akka Routers nell'attuale progetto a cui sto lavorando. Tuttavia, sono un po 'confuso sull'importanza di ciò. Tra i due metodi seguenti, che è più vantaggioso.Importanza di router Akka
- con router e percorsi.
- Creazione di tutti gli attori necessari.
Ho capito che il router assegnerà i messaggi in arrivo tra i suoi percorsi in base alla strategia. Inoltre, possiamo avere una strategia di supervisione basata sul router. Ho anche capito che gli attori sono anche leggeri e non è un overhead creare più attori possibili. Quindi, possiamo creare attori per ciascuno dei messaggi in arrivo e ucciderlo se necessario dopo il completamento dell'elaborazione.
Quindi voglio capire quale di questi disegni è migliore? O in altre parole, nel qual caso (1) ha vantaggio su (2) O viceversa.
Grazie Aleksey, per la spiegazione. Ora ho capito come un attore è diverso dal router. Ma ho ancora una confusione. In che modo i router migliorano le prestazioni, dal momento che siamo in grado di creare il numero di attori per l'elaborazione quando richiesto senza alcun sovraccarico? Immagino che i router possano portare alla tolleranza d'errore, ma a parte questo? –
Creare attori è molto economico e non preoccupante. I router migliorano le prestazioni nell'instradamento dei messaggi essenzialmente inoltrando un messaggio direttamente dal client all'operatore "bypassando" l'agente di routing. Se si implementa il routing utilizzando l'attore normale, tutti i messaggi dovranno fare la coda nella propria casella di posta e essere inoltrati ai lavoratori, è un salto extra che si potrebbe voler evitare. Schematicamente: 'Client -> (AkkaRouter) -> Worker' vs' Client-> YourRouter-> Worker'. Dove '(X)' significa un salto che sarà bypassato. –
Cosa succede se implemento "attori per richiesta"? In tal caso, ciascun attore gestirà una sola richiesta e potrà essere ucciso dopo di ciò? Funzionerà meglio di avere router? –