Domanda

Abbiamo il nostro server MySQL principale nella città di A. Abbiamo la maggior parte del nostro servizio clienti nella città di B. Il personale si lamentano che la connessione è troppo lenta per il server. Le opzioni sono:

  1. Sono loro escono su internet pubblico invece del nostro legame diretto tra le città; in questo modo, ping potrebbe essere più lungo, ma non sono in competizione con il traffico VoIP tra le città

  2. Cluster database in modo che scrive e legge può accadere simultaneamente su server locali in entrambe le città.

2 è di gran lunga preferibile, ma come si può probabilmente dire dalla mia descrizione non ho assolutamente idea di come implementarlo o anche se si tratta di 'cluster'. Il migliore che ho trovato per MySQL Cluster è che richiederebbe l'utilizzo di tabelle NDB e preferisco non convertire l'intero nostro database per questo. quali sono le mie opzioni? Grazie.

È stato utile?

Soluzione

Come lontani (tempo di ping) sono le due città? 80ms è ciò che sperimentiamo in corso negli Stati Uniti. E non è male.

La scrittura su entrambe le teste di master-master è possibile, ma ha un sacco di punti di dolore.

NDB Cluster permette a caldo caldo, ma (come dici tu) richiede un po 'di conversione.

Quindi, tornando a quello che io vedo come l'unica soluzione praticabile:. Un unico maestro scrivibile, oltre a qualsiasi numero di slave

Una cosa che può fare un master a distanza dolorosa è se "unità" dell'utente di azione si traduce in molte istruzioni SQL. Che può / deve essere risolto (1) Ripensare il codice per utilizzare un minor numero di dichiarazioni (2) utilizzare una stored procedure per incapsulare il maggior numero di istruzioni SQL come possibile, quindi distribuire l'nel Master a distanza.

Legge (diverso da "critica legge") può / dovrebbe andare a uno schiavo, dietro un bilanciatore di carico. E alcuni meccanismo dovrebbe garantire che si legge di solito sono "locale".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top