Come implementare un proxy distribuito con quote?

1

Sto sviluppando un proxy scalabile (Linux / C / C ++, moduli Nginx o server HTTP personalizzato) che gestisce le richieste HTTP in arrivo e li reindirizzamento ad altre posizioni in base ai parametri inclusi nella richiesta in ingresso (IP, tempo per esempio) o fattori esterni (da qui l'uso di un modulo Nginx in grado di recuperare i fattori esterni).

Tuttavia, la parte delicata riguarda le quote. Ad esempio, vorrei poter bloccare le richieste di inoltro proxy provenienti da un IP quando la sua quota giornaliera di indennità è terminata.

L'implementazione delle quote non è difficile. Tuttavia, il fatto che le quote funzionano in un ambiente distribuito (dove idealmente tutto è condiviso, niente) è tutt'altro che banale. In effetti, lo stato della quota deve essere condiviso con tutti i processi distribuiti in modo che possano sapere se devono procedere o meno. Avere un gestore di quote centrale significa usare le serrature. Questo mi fa pensare che le prestazioni scenderanno molto velocemente. Il blocco dello stato delle quote ogni volta che viene gestita una richiesta di trasferimento proxy non sembra la soluzione per me.

Qualche suggerimento?

    
posta SCO 07.06.2013 - 22:57
fonte

1 risposta

1

Puoi dare una prova Erlang / OTP distribuita. Scriveresti la tua logica proxy in Erlang.

Puoi mantenere le tue "quote" nelle tabelle di Mnesia. Mnesia può essere distribuito su diversi nodi di Erlang attraverso la rete. Puoi anche controllare se è necessario bloccare il tavolo durante la lettura o la scrittura.

    
risposta data 03.03.2014 - 16:57
fonte

Leggi altre domande sui tag