Descrizione del progetto
TradottoPer gli algoritmi vogliamo sia una variante del token bucket per smussare brevi picchi che un contatore a finestra mobile per una contabilizzazione precisa all'interno della finestra, selezionabile a livello di politica. I contatori devono essere memorizzati in Redis in modo che più nodi API vedano la stessa immagine di consumo senza divergenza, e il controllo stesso aggiunge solo un millisecondo o due di latenza. Oltre ai limiti semplici, abbiamo bisogno di livelli di quota completi con limiti mensili o giornalieri, tracciamento del consumo per chiave e un modo per restituire la quota rimanente al chiamante. Quando un limite viene superato, il servizio deve rispondere con stato 429, restituire intestazioni di limite standard tra cui limite, rimanente e reset, e aggiungere un suggerimento Retry-After affinché i clienti ben comportati si limitino da soli.
La consegna include un piccolo pannello di amministrazione o formato di configurazione per descrivere i piani tariffari e i binding delle chiavi, un archivio metriche per fatturazione e analisi, e documentazione chiara. Si prega di spiegare come pianifichi operazioni atomiche in Redis, come eviti condizioni di gara sotto alta concorrenza e come testerai il limitatore prima di andare in produzione.
— Politiche per chiave con algoritmi di token bucket e finestra mobile
— Livelli di quota con limiti giornalieri e mensili
— Contatori condivisi su Redis con latenza minima aggiunta
— Tracciamento del consumo e report per fatturazione
— Risposte corrette 429 con limite, rimanente, reset e intestazioni Retry-After
— Configurazione amministrativa per piani tariffari e binding delle chiavi, documentazione e test di carico