Como distribuir a entrega do email entre 2 ou mais servidores

1

Oferecemos serviço de e-mail marketing através do nosso aplicativo on-line. Nós temos cerca de 30 clientes. E cada um tem a sua própria lista de mailling (5k a 20k e-mails cada).

O que realmente queremos é distribuir a entrega de e-mail entre dois ou mais servidores. Eu queria saber que tipo de abordagem / soluções MailChimp, Constant Contact usa para fornecer um ótimo serviço? usar muitos servidores? muitos IPs?

Nossa política de spam suspende QUALQUER usuário / cliente que recebe 10% de rejeição.

    
por Newtonx 31.03.2010 / 03:16

3 respostas

1

Temos 1 servidor no The Planet

Dual Xeon Quad Core, com 12 GB of RAM

Processor #1 Vendor: GenuineIntel
Processor #1 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #1 speed: 1995.080 MHz
Processor #1 cache size: 6144 KB

Processor #2 Vendor: GenuineIntel
Processor #2 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #2 speed: 1995.080 MHz
Processor #2 cache size: 6144 KB

Processor #3 Vendor: GenuineIntel
Processor #3 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #3 speed: 1995.080 MHz
Processor #3 cache size: 6144 KB

Processor #4 Vendor: GenuineIntel
Processor #4 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #4 speed: 1995.080 MHz
Processor #4 cache size: 6144 KB

Processor #5 Vendor: GenuineIntel
Processor #5 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #5 speed: 1995.080 MHz
Processor #5 cache size: 6144 KB

Processor #6 Vendor: GenuineIntel
Processor #6 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #6 speed: 1995.080 MHz
Processor #6 cache size: 6144 KB

Processor #7 Vendor: GenuineIntel
Processor #7 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #7 speed: 1995.080 MHz
Processor #7 cache size: 6144 KB

Processor #8 Vendor: GenuineIntel
Processor #8 Name: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
Processor #8 speed: 1995.080 MHz
Processor #8 cache size: 6144 KB

Quando todos os nossos clientes estão entregando campanhas ao mesmo tempo (isso acontece antes das datas comemorativas), estamos recebendo muitos e-mails rejeitados devido ao fluxo de entrega maior. Nós roteamos nossos IPs de saída de e-mail usando 45 IPs. E controlar / limitar o fluxo para um host (por exemplo: @ hotmail, @gmail) de cada IP.

Nossa abordagem é

  1. Nosso aplicativo envia 300 e-mails para @ hotmail.com às 14h
  2. O aplicativo bloqueia as entregas para @ hotmail.com e começa a distribuir para hosts diferentes até aumentar o limite por host
  3. O aplicativo rotaciona o IP de saída do servidor de e-mail (usando 45 IPs diferentes) a cada 10 minutos

Estou com medo, à medida que o negócio cresce e recebemos mais clientes, o DELIVERY FLOW fica mais alto e essa abordagem FALHA ao ser rejeitado pelos hosts de destino.

    
por 16.04.2010 / 18:46
0

Normalmente, uma fila de mensagens é usada para algo assim. Comandos para enviar e-mail para determinados destinatários ou grupos de destinatários são enfileirados em um produtor e, em seguida, qualquer número de consumidores pode executar o próximo comando na fila e no processo.

Existem muitas opções de como implementar, mas isso dependerá do seu ambiente específico.

Dito isto, o volume de e-mail que você está enviando não é tão alto para um único servidor.

    
por 31.03.2010 / 03:29
0

Qual é exatamente o problema aqui?

O seu volume não é alto o suficiente para justificar a divisão - quer dizer, mesmo que todos os seus 30 clientes enviem 20.000 emails de uma vez, isso não é muito - o suficiente para UM servidor poderoso lidar (e não quero dizer super poderoso - é só pegar alguns discos e formar um ataque para o spool de e-mail).

Você poderia possivelmente ter vários servidores de envio para enfileiramento. Um bloco de endereços IP para todos os servidores de correio. Usar algo como o MS Exchange para enviar (a troca é excelente para manter farms de servidores automaticamente) ou usar algum mecanismo para agrupar e-mails entre servidores (para que aqueles no mesmo domínio acabem no mesmo servidor - simplesmente porque o servidor pode enviar vários e-mails em uma conexão TCP).

Vários ISPs soam como um não-problema. Não se esqueça - falamos de muito tráfego para uma linha ADSL residencial barata. Depois de obter o grau comercial, seus servidores passam para um data center adequado. O tempo de atividade é muito alto então - para um bom (cuidado, alguns realmente parecem baratos). Mesmo que o tempo desça um dia em 2-3 anos, você tem que ser REALMENTE grande ou agrupado para fazer sentido. E, mesmo assim, as coisas podem ficar muito ruins (como em: a Wikipedia também caiu há algum tempo recentemente).

O principal problema será que você precisa de servidores dedicados baseados em especificações para lidar com o fluxo de mensagens. O tráfego de rede não é muito. Mas o spool de email será muito difícil em seus discos. Se você realmente receber picos de 600.000 e-mails, um RAID 10 de 4-8 discos de alta velocidade (ou: um ataque 5 de SSDs) soa como a melhor aposta. Como todos os sistemas transacionais do banco de dados, seu limite será o IO. Eu iria com um sistema de arquivos formatado personalizado com tamanho de nó não padrão (64k), permitindo que todos os e-mails fossem lidos / gravados no nó praticamente por garantia. Note que isto é baseado no uso do SPIKE - se os e-mails não receberem todos os envios de uma só vez, você poderá usar muito menos.

O próximo passo seria um cluster de servidores.

    
por 31.03.2010 / 05:56

Tags