Il modello di attore è ideale per il controllo della concorrenza

4

quindi sto pensando di usare il modello dell'attore per risolvere un problema che attualmente ho. Per brevità, ho inventato uno scenario in modo da non diventare troppo tecnici.

Diciamo che ho 3 panchine ma ogni panchina supporta un diverso numero di persone:

  • Park Bench 1 supporta 3 persone contemporaneamente
  • Park Bench 2 supporta 5 persone contemporaneamente
  • Park Bench 3 supporta 2 persone contemporaneamente

In anticipo, so su quale banco andare, tuttavia, quello che non ho contesto è il numero di persone sedute in panchina. Quello che voglio fare è bloccare qualsiasi altra persona dal sedersi su una panchina se è piena, ma quando un posto diventa disponibile permettigli di sedercisi sopra.

Per qualche motivo, il modello dell'attore mi è saltato in testa, ma non sono sicuro se questo sia l'approccio corretto e forse c'è un approccio alternativo per risolvere il mio problema, nel qual caso sono ansioso di ascoltare.

Immagino di creare 3 attori ParkBench1Actor ParkBench2Actor ParkBench3Actor e in qualche modo controllare il numero di attori dal vivo. Credo che concetti come il pooling possano aiutare in questi scenari link .

Gradirei i pensieri della gente su questo e dimmi se ho perso un po 'la trama:)

    
posta Onam 30.01.2018 - 17:42
fonte

1 risposta

2

Il modello dell'attore si distingue dalle altre tecniche in virtù della sua capacità di eseguire processi su qualsiasi macchina arbitraria all'interno del tuo dominio informatico. Quindi, se questa capacità si adatta al tuo caso d'uso, allora sì, è ideale per i tuoi scopi.

Tuttavia, un processo è un'unità computazionale a grana relativamente grossolana e, a causa di ciò, non è appropriato per tutti gli scenari. Ad esempio, non tenteresti di distribuire l'ordinamento di un array ordinario agli attori a meno che l'array non fosse enorme. Invece, si impiegherebbe un meccanismo a grana fine come discussioni e futures.

Mappa / Riduci i motori come Hadoop / Hive (che prendono un problema di big-data, lo spezzano in parti più piccole, lo espandono su più macchine e poi eseguono un'aggregazione sui singoli risultati) giustificano un attore basato sul processo modello simile a causa dell'enorme quantità di dati coinvolti.

    
risposta data 30.01.2018 - 18:59
fonte

Leggi altre domande sui tag