2012-11-30 15 views
6

Ho un sito con codeigniter, mysql, che ha l'installazione di chatchat in esso. il sito (ad esempio xyz.com) è ospitato in ambiente Amazon. Ha S3 implementazione per il caricamento di immagini, CDN implementazione per file statici servire, RDS implementazione per db, SES per Mail l'invio. C'è un piano per integrare Ridimensionamento automatico per il sito. Ho studiato il modo in cui la chatchat verrà implementata in questo scenario, dato che le chat di chat hanno il template e il file di configurazione in cache, hanno dovuto fare qualche ricerca su questo per la condivisione della cache tra le istanze. Ho provatoistanze Arrowchat e Amazon

a). ha creato un bucket S3 e lo ha mappato alla cartella cache di arrowchat - ma non è andato bene come codice della libreria di chat nel file incluso nella directory della cache, quindi essendo in s3 non possiamo includere direttamente i file nel nostro codice di chat.

b). creato un sottodominio chat.xyz.com e installato la frecciachat in quel sottodominio e utilizzato nelle istanze. - Ha funzionato bene salvo alcuni problemi di codice interdominio che sono stati risolti da alcune correzioni di codice. Il problema era che dovevamo gestire lo stesso codice in un dominio e sottodominio.

Per favore fatemi sapere se i metodi che ho elencato sono metodi adeguati. Se no, per favore fatemi sapere se c'è qualche altro suggerimento.

+0

Scusa ma dovresti elaborare un po 'di più, perché dovresti condividere la cache? Voglio dire, immagina di impostare il tuo DNS per il routing al tuo ELB dove hai le tue macchine di scaling automatico. Senza condividere la cache, qual è il peggio che può capitare? creare copie della cache su ogni istanza? è questo un vero problema? Per favore, spiega perché, nel nome di Dio, avresti bisogno di condividere quei file cache. –

risposta

1

È necessario utilizzare ElasticCache e condividere il pool di nodi tra tutte le istanze del gruppo di scala automatica. Se i modelli richiedono l'elaborazione, non è possibile utilizzare direttamente amazon S3. (Il codice php su un'istanza specifica HA a leggere il modello, elaborarlo e rispedirlo indietro). Pseudocodice: Associare una chiave univoca a ciascun modello (ovvero dati/nome_modello). Quando viene richiesto un modello, selezionare Memcache se esiste una chiave di questo tipo. Altrimenti leggerlo da S3 e caricarlo nella cache. Una volta nella cache tutte le istanze saranno in grado di utilizzare quel singolo valore.

Problemi correlati