Diferença entre afinidade de sessão e sessão pegajosa?

126

Qual é a diferença entre afinidade de sessão e sessão persistente no contexto de servidores de balanceamento de carga?

user32262
fonte

Respostas:

82

Eu já vi esses termos serem usados ​​de forma intercambiável, mas existem diferentes maneiras de implementá-lo:

  1. Envie um cookie na primeira resposta e depois procure-o nos seguintes. O cookie diz para qual servidor real enviar.
    Ruim se você precisar dar suporte a navegadores sem cookies
  2. Partição com base no endereço IP do solicitante.
    Ruim se não for estático ou se muitos vierem através do mesmo proxy.
  3. Se você autenticar usuários, particione com base no nome do usuário (ele deve ser um modo de autenticação suportado por HTTP para fazer isso).
  4. Não requer estado.
    Permita que os clientes acessem qualquer servidor (envie o estado ao cliente e peça que eles o devolvam).
    Esta não é uma sessão complicada, é uma maneira de evitar a necessidade de fazê-lo.

Eu suspeitaria que pegajoso pode se referir à maneira de cookie e que afinidade pode se referir aos nºs 2 e 3 em alguns contextos, mas não foi assim que eu o vi usado (ou eu mesmo)

Lou Franco
fonte
6
Se uma solicitação estiver vinculada a um servidor físico, o que acontecerá se esse servidor falhar? Existe uma estratégia para usar o cookie para conter um servidor de failover?
raffian
2
Se o servidor falhar, o aplicativo falhará - talvez você precise fazer login novamente. Talvez você tenha perdido dados. Normalmente, o balanceador de carga escolhe outro servidor e você continua, mas algum estado é perdido. Se isso for inaceitável, você precisará obter o estado no DB ou em outros servidores o mais rápido possível ou ter uma estratégia sem estado.
Lou Franco
Heroku se refere a eles como o oposto. O Afifinity da sessão é baseado em cookies e não suporta pegajosas. devcenter.heroku.com/articles/session-affinity
RandallB
39

Como sempre ouvi os termos usados ​​em um cenário de balanceamento de carga, eles são intercambiáveis. Ambos significam que, uma vez iniciada uma sessão, o mesmo servidor atende a todos os pedidos dessa sessão.

Jonathan Rupp
fonte
21

Sessão persistente significa que, quando uma solicitação chega a um site de um cliente, todas as solicitações adicionais vão para o mesmo servidor acessado pela solicitação inicial do cliente. Acredito que afinidade de sessão é sinônimo de sessão persistente.

kemiller2002
fonte
13

Eles são os mesmos.

Ambos significam que, ao entrar no balanceador de carga, a solicitação será direcionada para o servidor que atendeu a primeira solicitação (e possui a sessão).

Justin Niessner
fonte
11

Sessão fixa significa rotear as solicitações de uma determinada sessão para a mesma máquina física que atendeu a primeira solicitação para essa sessão.

Manoj
fonte
3

Este artigo esclarece a pergunta para mim e discute outros tipos de persistência do balanceador de carga.

Pensamentos de Dave: persistência do balanceador de carga (sessões complicadas)

John S.
fonte
6
Aparentemente já não está disponível, mas há uma cópia na máquina de Wayback
Martin McNulty
12
É por isso que você não publica apenas links sem uma explicação #
Juan Mendes
Constatou que o conteúdo do link acima (não está mais disponível agora) foi movido para archive.li/SG4fA Ele basicamente lista os vários tipos de persistência suportados pelo balanceador de carga F5.
Aveek
0

Eles são sinônimos. Sem Diferença

Afinidade persistente de sessão / sessão:

Afinidade / viscosidade / contato entre a sessão do usuário e, o servidor para o qual a solicitação do usuário é enviada é mantido.

Sateesh
fonte