Sono nuovo di Akka e il modello dell'attore, quindi non sono sicuro se si adatta alle mie esigenze.Akka per simulazioni
Voglio creare una simulazione con akka e milioni di entità (pensare come oggetti di dominio - attori successivi) che possono influenzarsi a vicenda. Quindi, pensando come simulazione con un risultato "fuzzy" più o meno, abbiamo un array con entità, in cui ognuna di queste entità ha una velocità, ma è ostacolata dalle entità di fronte all'entità reale. Quando inizia la simulazione, ogni entità dovrebbe spostare n campi, o, se contrastata da altri, meno campi. Abbiamo diverse iterazioni e alla fine abbiamo un nuovo ordine. Questo viene ripetuto per alcuni round fino a quando non vogliamo vedere una "istantanea" delle entità principali (che possono essere rimosse prima che inizi il prossimo round).
Quindi non capisco se riesco a creare questo con Akka, perché:
E 'possibile avere l'elenco globale con la posizione di ciascun attore, in modo da sapere in quale posizione sono e quali sono in davanti a loro? Per quanto ho capito, questo viola l'incapsulamento degli attori. Posso mettere la posizione dell'attore nell'attore stesso, ma come posso vedere/notificare gli attori attorno a questo attore? Oltre a questo, l'elenco globale creerà problemi di sincronizzazione e inciderà sulle prestazioni, esattamente l'opposto del comportamento desiderato (ed è complementare a akka/il modello dell'attore)
Cosa mi sono perso? Devo cercare un altro approccio di progettazione? Grazie per i suggerimenti.
Aggiornamento: lavorare con eventbus e classificatori non sembra un'opzione, anche. Facendo riferimento alla documentation:
"quindi non è ben adatto a utilizzare i casi in cui le sottoscrizioni cambiano con frequenza molto elevata"
Abbiamo deciso di utilizzare una soluzione diversa per il nostro problema. Comunque penso che il tuo schema suggerito sia promettente. Anche grazie per il riferimento di n-body. – Dag