Il mio stream ha un mix uniforme di CPU bound e livelli di IO bound (ogni fase IO è seguita da uno stage CPU). Quello che voglio fare è mettere le operazioni IO su un dispatcher diverso rispetto al resto del flusso.Stream di Akka - immissione di un flusso legato all'IO su un dispatcher diverso
In un'applicazione Akka basata su attore tradizionale, avrei potuto mettere i miei attori IO su un dispatcher di pool di thread fissi con molti thread mentre mettevo gli attori legati alla CPU su un pool di fork join con un piccolo numero di thread (alcuni multipli, idealmente 1, del numero di core). Questo dovrebbe ridurre il tempo sprecato nel cambio di thread per gli attori legati alla CPU mentre aumenta il throughput avendo un sacco di thread che bloccano su IO.
Questa intesa è corretta? Se no, perché? Se sì, allora come faccio a inserire i miei stadi rilegati IO (flussi) su un dispatcher separato dal resto del flusso?
Ho provato a disattivare l'auto-fusione e questo aiuta. Ma ha ancora un throughput molto minore rispetto alla controparte Akka quasi equivalente.
Grazie per la risposta. Questo è quello che stavo cercando. – anindyaju99
Cosa succede se voglio restituire una risposta e continuare a lavorare in background? [Questo] (https://gist.github.com/asarkar/37e4cb026c463f6334617e923cfc4b12) sembra funzionare. –