Ho un problema interessante che mi piacerebbe risolvere. Supponiamo di avere 2 distribuzioni, il Data Center degli Stati Uniti e il Data Center in Europa, ciascuna contenente Web Server e un'istanza Redis (replicata, ma che potrebbe eventualmente crescere nel proprio cluster utilizzando TWEMPROXY).
Disponiamo di un servizio di bilanciamento del carico che identifica il Centro dati disponibile più vicino e ne indirizza le richieste. La nostra logica applicativa è in grado di identificare un titolare e instradare la richiesta al centro dati appropriato indipendentemente da dove viene chiamato.
Ad es. se accedo agli inquilini statunitensi dall'Europa, Load Balancer invierà le richieste al data center Europa, ma l'applicazione identificherà l'inquilino e accederà ai dati dal database del titolare (che in questo caso risiede negli Stati Uniti).
Durante la pubblicazione delle richieste, i dati vengono anche memorizzati nella cache in Redis Server accoppiato (che risiede in Europa). E questo è quando iniziano i problemi.
Quando i dati vengono invalidati da qualcuno negli Stati Uniti, i dati vengono cancellati dai server redis abbinati USA, ma non dall'Europa. Pertanto, se qualcuno accede ai dati degli Stati Uniti dai server europei, continuerà a ricevere dati obsoleti a meno che non venga cancellato.
C'è un modo per invalidare una voce nel Data Center degli Stati Uniti e quindi anche invalidarla dal Data Center Europa? Qualcuno ha implementato una strategia in base alla quale è possibile identificare facilmente i server Redis in cui risiedono i dati invalidati in modo da poterli eliminare selettivamente dai server in cui risiede? Mi chiedo se la mia unica opzione è quella di inviare un messaggio ad ogni Redis Server per cancellare la chiave, se esiste. Questo è altamente poco pratico e non si ridimensiona.
L'altra alternativa è quella di accedere e memorizzare sempre i dati dell'Europa dalle cache Redis europee indipendentemente da dove provenga la richiesta. Ciò potrebbe aumentare la latenza di Redis per qualcuno che proviene dagli Stati Uniti e sta accedendo agli Euro Data Center, ma le probabilità che ciò accada sono piuttosto basse.
Mi piacerebbe sentire cosa pensano gli altri di questo.
Anup