Geograficamente distribuída MySQL

Saudações a todos.

Há o desejo de distribuir geograficamente projeto, e começar com um de seus состовляющих: MySQL. São interessantes as respostas de quem trabalhou de perto com este banco de dados e não na teoria sabe como funcionam os vários esquemas geograficamente distribuídos de balanceamento.

O esquema atual de aproximadamente o seguinte: um servidor web e duas servidor de banco de dados no modo "master-slave". Para um vão de solicitações de leitura a outro, principalmente na entrada, tanto o servidor de banco de dados ficam lado a lado e são ligados cruzado. Há a idéia de fazer um esquema um pouco mais complicado e para entrar em operação ainda vários servidores em outro país, quando configurar a replicação de banco de dados. Canais e lá e bons, mas o atraso já é mais do que ao conectar-se a servidores da banda-em-um papa". Quem implementando tais esquemas: o que pode dizer?

  • Realmente existem problemas conhecidos?
  • Pode репликационный tráfego que você pode de alguma forma para a colheita, para a economia de um canal?
  • Vale a pena usar o built-in MySQL, ssl, ou melhor embalar todo o OpenVPN?
  • Quais subaquáticas (ou mesmo completamente superfície) pedras reúnem-se, se ainda acrescentar master-master?
  • O que dirá sobre os tipos de cluster de banco de dados MySQL?


Acrescentarque, em primeiro lugar, naturalmente interessados o conhecimento prático do que teórico.


Answers 6:

Share:


jelena djordjevic
Answer 1

Em trabalhos anteriores foi o esquema de um mestre vs слейвы em diferentes regiões. A tarefa de balanceamento em nível de banco de dados não foi resolvido, o acesso era predominantemente local. Você pode viver, mas, como Você já deve ter notado, a replicação pode ficar para trás, e ela faz isso de forma desigual. Outra грабля — view, cadela, ainda não tão confiável como você gostaria. Desapareceu o link entre os servidores — réplica levantou-se. Por esta mesma razão suficiente periodicamente пропадала a oportunidade de gravar alguma coisa para o mestre, "de longe". De modo que, em qualquer caso, aconselho a primeira coisa a entrar, pelo menos, o mais simples de monitoramento e tentar entender o quanto ele é тупить, especificamente, no seu caso, para avaliar se este é adequado. Se Você tem gráficos do tempo de latência de replicação, controle de disponibilidade de assistente a partir de cada ponto, de onde vai ser ele a escrever — viver se tornará pode ser e não é fácil, mas предсказуемее :)

Podem também manifestar-se flutuando problemas com o código que espera nenhum atraso. Digamos, é registrado um novo usuário (você faz no assistente de banco), mas realmente não pode fazer nada, т. к. estas não chegaram a слейва. Esse problema parece muito estupidamente, mas podem ser mais astuto de suas formas de manifestação.


Bonni Gamer 69
Answer 2

O MySQL proxy com este produto pode ser transparente para os usuários redistribuir a carga de trabalho para os servidores MySQL, т. ч. configurar esquemas complexos, com distribuição de banco.

dev.mysql.com/downloads/mysql-proxy/


Michael Cude
Answer 3

O que dirá sobre os tipos de cluster de banco de dados MySQL?


Referindo-se engine=NDB? Isso definitivamente não é para Você. NDB apenas assume que a máquina de lado a lado e bem conectados...


Cole Tuschel
Answer 4

O tempo de atraso master-master replicação tivemos ~10 horas, ele mesmo ~900Мб. Canais e ferro, e claramente não eram o ponto fraco. Como algo assim.


Corey Li
Answer 5

Agora засматриваюсь comercial do DRBD-proxy sobre o assunto.


Dheeru Kura
Answer 6

Se a divisão geográfica é feito para a aceleração do acesso de usuários locais( aqueles a вынесеным servidores de BD ainda e бэкенды estão), então o melhor é dividir db em duas partes.
Uma parte do "kernel", que muitas vezes синхриться, segunda — localmente-geográfica отпочкование, que em um determinado gênero em si.
E que pode ser синхрить sem паранои. O que muito facilita o trabalho.