MySQL Proxies

2

Em uma linha semelhante a ...

http://serverfault.com/questions/35899/mysql-5-1-replication-topologies-multi-master

O que eu gostaria de saber é se existe algum proxies good para o MySQL por aí? Parte da minha plataforma é um ambiente de "hospedagem compartilhada" e os clientes geralmente configuram (como um exemplo) seu aplicativo para conversar com 'mysql4-7.db.domain.tld' no momento.

Infelizmente, isso faz com que as atualizações, a abordagem "Tudo ou nada" e os testes sejam complicados.

O que eu gostaria de fazer é apontar todos em um conjunto altamente disponível de proxies, fazer com que eles lidem com autenticação e passem consultas para o servidor de banco de dados apropriado.

Recursos que eu adoraria ver;

  • configurável a partir de um banco de dados
  • algum tipo de estado compartilhado, para que possamos fazer um failover perfeito
  • não é um arrasto total no desempenho
  • registros / métricas adicionais para identificar usuários / bancos de dados pesados, deve ser possível, pois o proxy verá todas as consultas em andamento?
  • capacidade de ouvir em vários endereços IP e portas

O objetivo final é ser capaz de mover os usuários em um único banco de dados por vez, para que possamos lidar com upgrades em estágios e principalmente sem que os clientes percebam ou se importem. Por favor, tenha em mente que não escrevemos os aplicativos para esses caras, nem fornecemos suporte técnico "em profundidade" (para o nível de configuração do aplicativo) e alguns de nossos usuários são bastante ignorantes. Daí esta linha de pensamento;)

Eu considerei criar registros DNS para cada banco de dados de maneira semelhante a:

databasename.db.domain.tld

Em seguida, apontando para o servidor de banco de dados correto, temos uma restrição de que os nomes de banco de dados (em todas as plataformas de banco de dados) devem ser exclusivos ... Existe alguma solução melhor?

Feliz por responder a perguntas. Obrigado pelo seu tempo!

    
por nixgeek 04.07.2009 / 18:52

2 respostas

1

mysqlproxy infelizmente vem com . mas você pode escrever em itens avançados . talvez você queira usá-lo apenas temporariamente durante o embaralhamento de dbs.

eu só usei em env de teste, não o tenho em produção.

    
por 04.07.2009 / 18:59
1

Uma maneira barata e alegre de usar a solução de DNS seria incorporar algo específico à conta no nome do banco de dados. Um cliente não teria qualquer expectativa de nomes de bancos de dados duplicados em uma conta, e isso seria simples de gerar, já que você teria que disponibilizar a lista por cliente por meio de seu sistema de provisionamento.

Se você seguir esse caminho, sugiro usar algo que nunca pode mudar da conta, como o número da conta (em vez do nome de login da interface de gerenciamento, por exemplo). Caso contrário, se você tiver que fazer uma mudança de nome por qualquer motivo, você deve atualizar o DNS em todos os lugares, ou ter algum sistema para o avô dos nomes antigos por um período de tempo razoável.

    
por 04.07.2009 / 19:56