1 A-ficha para cada subdomínio (10000 +); possíveis problemas? Qualquer outra solução?

StackOverflow https://stackoverflow.com/questions/474244

Pergunta

A maioria das soluções que eu li aqui para apoiar subdomínio-per-usuário no nível DNS estão a ponto de tudo para um IP usando * .domain.com.

É uma solução fácil e simples, mas o que se eu quero apontar primeiros mil usuários registrados para serverA e próximos 1000 usuários registrados para serverB? Esta é a solução preferida para nós manter nosso custo baixo em software e hardware para cluster.

alt texto http://learn.iis.net/file.axd?i = 1101 (Citado a partir de diagrama local IIS MS)

A solução mais lógica parece ter 1 x A-registro por subdomínio na Zona arquivos de dados. se liga não parece ter qualquer limite de tamanho para a Zona Datafiles, restringe apenas a memória disponível.

No entanto, a minha equipa está preocupado com a latência de obter o novo subdoamin e pronto, já que a criação de um novo subdomínio consiste na inserção de um novo A-registro e reiniciar o servidor DNS.

é o desempenho de recomeçar o servidor DNS algo que devemos nos preocupar?

Agradecemos antecipadamente.

UPDATE:

Parece que a maioria de vocês me sugerir a usar uma configuração de proxy reverso em vez disso:

alt texto http://learn.iis.net/file.axd?i = 1102

(ARR é solução proxy reverso do IIS 7)

No entanto, aqui estão as CONS eu posso ver:

  1. ponto único de falha
  2. não pode estrategicamente servidores de instalação em locais diferentes com base em IP de geolocalização.
Foi útil?

Solução

O proxy front-end com uma entrada de DNS wild-card é realmente o caminho a percorrer com isso. É como grandes sites como o trabalho LiveJournal.

Note que esta não é apenas uma camada TCP balanceador de carga - há uma abundância de soluções que vai examinar a parte de host do URL para descobrir qual servidor back-end de transmitir a consulta também. Você pode facilmente fazê-lo com Apache rodando em um servidor de baixo-spec com configuração adequada.

Os garante proxy que a sessão de cada usuário sempre vai para o servidor back-end direita e mais qualquer sessão métodos manipulação só vai continuar a trabalhar.

Além disso, o procurador não precisa ser um ponto único de falha. É perfeitamente possível e muito fácil de executar dois ou mais front-end proxies em uma configuração redundante (ao fracasso evitar) ou até mesmo tê-los compartilhar a carga (ao estresse evitar).

Eu também a sugestão de segunda John Sheehan que a aplicação basta olhar para a parte da mão esquerda da URL para determinar qual usuário o conteúdo para mostrar.

Se estiver usando Apache para o back-end, consulte este post muito para obter informações sobre como configurá-lo.

Outras dicas

Use a entrada DNS curinga, em seguida, usar o balanceamento de carga para distribuir a carga entre servidores, independentemente do que o cliente são.

Enquanto você está nisso, pular o URL reescrever passo e ter o seu aplicativo determinar a conta que é baseado na URL como digitado (você pode facilmente determinar o que X está em X.domain.com como no domínio. com? user = X).

EDIT: Com base em sua informação adicional, você pode querer desenvolver um "broker" que as lojas que os clientes vão acessar os servidores. Tornar pública essa enfrentando, em seguida, extrair os recursos associados com o cliente armazenado com o corretor. Seu front-end pode ser com balanceamento de carga, então você pode pegar a partir dos servidores de arquivos / db com base em quem eles são.

Se você usar tinydns, você não precisa reiniciar o servidor de nomes se você modificar seu banco de dados e não deve ser um gargalo, porque geralmente é muito rápido. Eu não sei se ele executa bem com 10000 + entradas embora (ele iria me surpreender se não).

http://cr.yp.to/djbdns.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top