Desativar trabalhador com nginx?

1

Gostaríamos de migrar para o nginx e queremos ter o mesmo comportamento que temos no momento:

Estamos usando a seguinte configuração de balanceamento de carga: Apache mod_jk com AJP conectado aos trabalhadores do JBoss 4.2.3. JKStatusManager instalado para configurar as configurações do trabalhador online. Os trabalhadores têm sessões complicadas. Não há replicação de sessão para failover de sessão.

Infelizmente, não podemos ativar a replicação de sessão para failover de sessão porque nosso estado de sessão é muito grande (JSF). Não podemos passar para a replicação do lado do cliente porque o estado da sessão é muito grande.

Quando precisamos atualizar os funcionários, fazemos o seguinte:

  • Desativar 50% dos trabalhadores
  • espere cerca de 60 minutos até que esses funcionários tenham 0 clientes conectados
  • atualize esses trabalhadores
  • ativar esses trabalhadores
  • faça o mesmo com os outros 50%

Isso não é ideal, mas funciona muito bem.

Pergunta: é possível conseguir o mesmo comportamento com o nginx? (exceto conexões AJP. Gostaríamos de usar HTTPS no backend com o módulo nginx HttpProxyModule)

    
por Marcel 21.09.2011 / 13:39

1 resposta

1

Como Martin F disse, o que você quer não pode ser feito sem piratear o nginx - Se você for fazer isso, você pode querer investir recursos de programação em outros lugares.

Você diz que os dados da sua sessão são "muito grandes" para replicar - Qual é o tamanho "grande demais"?
Além de um certo ponto, é hora de gerenciar suas próprias informações de sessão e colocar os dados de estado em um banco de dados distribuído (possivelmente um bom NoSQL DB como o Mongo) e deixar que ele cuide da replicação para você ...

    
por 21.09.2011 / 19:55