Ho sviluppato un'applicazione Socket su TCP in .NET C #, che consente a molti client di inviare file gli uni dagli altri tramite un VPS che sto usando. La maggior parte dei trasferimenti di file avverrà tra persone nella stessa regione, ad esempio, anche nello stesso quartiere.
Quindi, se 300 client sono connessi, alcuni di questi saranno collegati da Europa, altri da, diciamo Stati Uniti, ecc ... Coloro che sono collegati dall'Europa non cercheranno mai di inviare file a quelli negli Stati Uniti.
Ciò che più conta per me è la scalabilità (si spera, avrò migliaia di utenti che si connettono contemporaneamente) e bassa latenza (reattività) quando si tratta di caricare / scaricare le velocità di trasferimento.
Qualcosa mi dice che se voglio che i file (fino a 2MB) vengano trasferiti rapidamente tra i miei clienti, dovrei ottenere un VPS in Europa, USA, Asia ecc. In questo modo, gli utenti otterranno velocità di trasferimento più elevate, e nel caso in cui uno dei server fallisce, sarà in grado di utilizzare l'altro (i). Inoltre, dovrei avere un database separato per le informazioni utente / statistiche a cui tutti i server si connettono quando necessario.
La mia domanda è, qual è la pratica comune per tale utilizzo e requisiti? Ogni tipo di indizio / terminologia che dovrei iniziare a familiarizzare sarà molto apprezzato. Grazie