Cos'è una coda di accesso?

0

alcuni di voi dovrebbero sapere cos'è una coda di accesso. Inizi il tuo gioco, come World of Warcraft, League of Legends, ..., inserisci il tuo nome utente e la password, fai clic su "accedi" e poi succede: Login Queue, position: x.

Quello che voglio chiedere è, in realtà è una coda di accesso sul lato server? Voglio dire, se prendi League of Legends e Klick accedi, il server prima controlla i tuoi logindata e poi ti posiziona nel loginqueue (o no, se la tua password è sbagliato). Quindi quello che non capisco è, perché c'è una coda. Se il server ha abbastanza tempo per controllare i tuoi logindata, qual è il problema semplicemente impostando il flag "is-loggedin"? Perché è necessaria una coda?

    
posta tkausl 08.12.2014 - 10:23
fonte

3 risposte

3

(Se si tratta di una domanda specifica per WoW, il forum o lo scambio di stack di giochi è un posto migliore: la mia risposta è più generica e proviene da schemi utilizzati anche nei sistemi aziendali)

Le code di accesso vengono solitamente utilizzate nei sistemi software lato server che dispongono di risorse totali limitate e i parametri di qualità del servizio impongono che l'utente venga assegnato almeno una certa quantità di risorse sul server per un'esperienza utente accettabile.

Esempio: nel caso di un gioco online, ogni utente ha bisogno di una certa quantità di cicli CPU e spazio di memoria per avere un'esperienza utente accettabile (come nessun ritardo). Quindi i server di gioco implementano una coda in modo tale che troppi utenti non riescano a soffocare il server risultando in un'esperienza di utilizzo scorretta per tutti gli utenti. Pertanto, se il sistema di autenticazione imposta semplicemente un flag "is-loggedin" dopo aver convalidato le credenziali, il numero totale di utenti simultanei non verrà limitato, con conseguenti prestazioni degradate per gli utenti.

Nei sistemi aziendali, tali meccanismi vengono utilizzati per risorse on-demand pesanti come i desktop remoti, ecc.

    
risposta data 08.12.2014 - 10:58
fonte
1

Al livello più semplice, il server ha ricevuto un nome utente e una password e chiede al database "hai un hash nome utente e password che corrisponde a questo". Il database dice quindi yay o no. È veloce e non richiede molta coda. Per motivi di esperienza utente, questo viene fatto con priorità, in quanto non vuoi che un utente attenda 5 minuti per scoprire che ha digitato in modo errato la propria password.

Tuttavia, c'è spesso più lavoro che deve essere fatto prima che uno sia effettivamente "dentro" il sistema. Ad esempio, sei un utente per la prima volta. Il tuo abbonamento è pagato. Hai nuove notifiche che ti aspettano. Quale accesso di sicurezza dovresti ricevere. Che dire dell'esecuzione di qualsiasi logica che dovrebbe essere eseguita sul login dell'utente. Tutto ciò richiede risorse prima di poter dare la schermata di benvenuto. Come ho accennato, il 'è la password corretta' è fatto con priorità molto più alta per motivi di esperienza utente, ma il resto richiede la seduta in coda.

Per la maggior parte delle applicazioni, è così esigua che non si vede una coda finché non si usa una parte molto più impegnativa dell'applicazione. Per molti sistemi aziendali, l'accesso non richiede una coda, ma esegue un report. Ma è possibile che un sistema sia sottoposto a tale richiesta che non disponga delle risorse per visualizzare immediatamente una schermata di benvenuto e quindi deve metterti in coda finché non saranno disponibili risorse sufficienti per gestire la richiesta.

Si dovrebbe notare che i sistemi complessi possono richiedere la coda di accesso a parti diverse, anche se in realtà non è necessario eseguire nuovamente l'autenticazione. Ad esempio, si accede a un sistema, si viene messi in coda fino a quando sono disponibili risorse sufficienti per giudicare il proprio livello di accesso, determinare le notifiche ed eseguire la logica aziendale in background. Quindi fai clic su un pulsante di segnalazione e rimani bloccato in una coda breve finché non sono disponibili risorse sufficienti per autenticare l'utente nel sistema di report (utilizzando le informazioni trasferite dal sistema precedente) e restituire l'elenco di rapporti che è possibile eseguire. Quindi fai clic su un rapporto, inserisci i dati e entri in una coda di rapporti molto più lunga mentre attendi risorse sufficienti per eseguire il rapporto.

In particolare per i giochi online, c'è una coda per entrare nell'interfaccia principale e una coda per entrare nel gioco, poiché l'interfaccia utente / gestione degli account è spesso separata dal gioco reale per vari motivi (ad esempio, avere tutti i server di account in un'unica posizione, anche se offre maggiore latenza ad alcuni utenti, non è un problema poiché la latenza 75 ms vs. 300 ms mentre si gestiscono le interazioni con gli account non è un grosso problema, ma si desidera che i server di gioco siano più vicini minima latenza possibile perché 75 ms contro 300 ms è un grosso problema durante il gioco).

    
risposta data 08.12.2014 - 16:48
fonte
0

Oltre alla risposta Jit Bs, penso che specialmente per LoL non è solo il fatto che puoi effettuare il login, ma piuttosto che puoi iniziare una partita. Iniziare una partita sembra acquisire abbastanza risorse serveride, anche con un gioco in esecuzione. Pertanto, se tutte le persone eseguono il login in una volta e iniziano una partita e giocano, ci sarà un enorme picco nella necessità di risorse del server. Tuttavia, se devi attendere 20 minuti per accedere, alcuni giocatori avranno già finito con il loro gioco.

    
risposta data 08.12.2014 - 16:35
fonte

Leggi altre domande sui tag