Desempenho do clustering / loadbalancing do Tomcat no ambiente de produção

2

Tenho algumas dúvidas sobre o desempenho do clustering e do gerenciamento de sessões no ambiente de carga balanceada. Aqui estão minhas perguntas:

  • Quais são os inconvenientes das sessões de acompanhamento e da replicação de sessão? O cluster conterá 4 nós, mas muitas sessões de usuários simultâneas podem ser esperadas.
  • Qual é o desempenho de carga pesada de ambas as soluções?
  • Alguém já usou algum deles em um ambiente de produção?
  • Que tal escalabilidade?
  • Se estiver usando sessões compartilhadas persistentes - onde armazenar o estado para obter uma solução possivelmente rápida e estável?
  • Você tem alguma experiência com compartilhamento de sessão (em memcache externo, banco de dados, etc.) em grande escala?

Obrigado por qualquer conselho

    
por user76591 31.03.2011 / 11:49

2 respostas

1

  • A desvantagem das sessões persistentes é que, com um número crescente de nós (no intervalo de > 100, > 1000), a probabilidade de falha aumenta. Então é preferível que não importe qual nó atenda a solicitação. No entanto, há problemas que precisam ser resolvidos com sessões persistentes de forma diferente, o que obviamente depende dos requisitos e da aplicação (os exemplos são sincronização de sessão, impedindo envios duplicados, redirecionados após postagem etc.). Na maioria das vezes, minha própria preferência é usar sessões fixas, desde que haja um número limitado de nós. Para 4 nós, pessoalmente, eu recomendaria usar sessões fixas.
  • Usamos sessões aderentes e replicação de sessão via gerenciador de sessão memcached em ambientes de produção. O memcached-session-manager foi desenvolvido durante o relançamento do tchibo.de (um dos maiores sites de comércio eletrônico da germance), com o objetivo de desempenho e escalabilidade.
  • Escolhemos sessões fixas para este aplicativo
    • por causa do melhor desempenho
    • os requisitos do cliente optaram por sessões fixas
    • o framework da Web usado era mais adequado para sessões fixas.
por 31.03.2011 / 12:11
0

Não é isto ou aquilo, se a aplicação requer ambos, então você tem que usar ambos. O armazenamento em cluster é para gerenciar a carga, enquanto a afinidade da sessão é usada para proteger os dados do usuário, se ocorrer uma falha em um nó.

Cite este exemplo, se você estiver trabalhando em um nó e não houver sessão fixa e seu nó travar, o armazenamento em cluster garantirá a visualização da página, mas sua sessão de trabalho atual será perdida.

    
por 23.01.2012 / 19:36