Solução

Mantenha cada sessão de usuário no backend correto

9 métodos de persistência, de source-IP hashing ao SAM — o motor de cookie configurável do TR7 com 4 fontes de cookie, 4 formatos de sessão, 4 flags de segurança

Carrinhos de compras, dashboards autenticados, sessões bancárias, gateways RDP — assim que um usuário inicia um fluxo com estado, cada requisição subsequente precisa chegar ao mesmo backend. Source-IP funciona até que os usuários estejam atrás de NAT. Cookies simples funcionam até serem removidos. O TR7 ADC oferece 9 métodos de persistência para que o correto esteja sempre disponível — escolhido por vService, sem compromisso.

9
Métodos de persistência de sessão disponíveis
2 × 4 × 4
Combinações de fonte de cookie × formato de sessão × flag de segurança do SAM
por vService
Método de persistência — troca ao vivo sem reinicialização

Quando o balanceamento de carga quebra sessões

Round-robin envia cada requisição para um backend diferente — por design. Para serviços stateless isso é perfeito. Mas no momento em que um usuário faz login, preenche um carrinho ou inicia um desktop remoto, a aplicação começa a manter estado em um backend específico. Se a requisição #2 chegar a outro, o usuário vê um carrinho vazio, uma tela de logout ou uma sessão RDP congelada.

A persistência de sessão (ou 'afinidade') resolve isso fixando um usuário em um backend escolhido pela duração da sessão. O ponto é que não há uma única maneira correta de fazer isso. Source-IP funciona para usuários com IP único, mas quebra atrás de NAT corporativo. Cookies funcionam em browsers, mas não para TCP puro. Hash de parâmetro de URL funciona para URLs stateless, mas não para fluxos com escopo de usuário. Cada método é correto em algum cenário.

A resposta é oferecer todos os métodos e escolher por vService.

Escolha o método de persistência, por vService

Cada vService escolhe seu método de persistência em um menu suspenso — junto com seu algoritmo de balanceamento de carga. Ambas as camadas são independentes: escolha Fastest+ para seleção de backend e um cookie TR7 para afinidade, ou round-robin com source-IP, ou qualquer combinação que se adapte à carga de trabalho. A troca de método é a quente, sem reinicialização.

9 métodos disponíveis

Cinco algoritmos de balanceamento de carga auto-persistentes (source, URI, URL-param, header, RDP-cookie) mais quatro métodos de persistência explícitos (cookie TR7, cookie de backend, dinâmico, SAM). Cobrem todos os casos comuns.

SAM — controle total do cookie

O Session Affinity Manager permite definir a fonte do cookie (gerado pelo TR7 ou pelo backend), o formato de sessão (UUID, IP-timestamp-aleatório, IP-aleatório, personalizado) e os flags de segurança (HttpOnly, Secure, SameSite=Strict/Lax) — sem alterar o código do backend.

Combinável com qualquer algoritmo ADC

A persistência roda sobre o algoritmo de balanceamento de carga: o algoritmo escolhe o backend para a primeira requisição, a persistência fixa as demais. Fastest+ para cold-start, cookie sticky para a sessão — funcionam juntos.

Troca a quente (sem reinicialização)

Mude o método de persistência em um vService ativo e as novas sessões adotam o novo método imediatamente. Sessões fixadas existentes continuam sem interrupção até expirar.

9 métodos de persistência de sessão disponíveis

Escolha o método que se adapta ao protocolo, à população de clientes e ao modelo de sessão da aplicação. Todos os 9 disponíveis por vService — sem código, sem plugin.

Source-IP

O mesmo IP de cliente sempre chega ao mesmo backend. Simples, sem código, funciona para qualquer protocolo. Melhor quando os IPs de clientes são diversos — quebra atrás de NAT compartilhado ou proxies corporativos.

Hash de comprimento de URI

Hash no comprimento da URL distribui a carga por complexidade de URL enquanto fixa URLs idênticas no mesmo backend. Útil para cenários de afinidade de cache.

Hash de parâmetro de URL

Hash em um parâmetro de consulta específico (ex.: ?user_id, ?session_token). Roteia a mesma requisição com escopo de usuário para o mesmo backend sem exigir cookies.

Hash de header

Hash em um header HTTP personalizado. Útil quando o chamador upstream injeta IDs de tenant ou correlação, ou para roteamento A/B baseado em header.

RDP cookie

Lê o cookie de sessão RDP embutido na negociação de protocolo. Necessário para gateways RDP e farms de desktop remoto — mantém os usuários no mesmo host RDP após reconexão.

Cookie TR7

O TR7 ADC gera e gerencia o cookie de afinidade por conta própria — sem necessidade de código no backend. O operador define o nome do cookie e um timeout de idle máximo; o ADC lê o cookie em cada requisição, o backend o ignora. A persistência mais fácil de adicionar a uma aplicação legada.

Cookie de backend

Use o próprio cookie de sessão da aplicação para afinidade — o operador nomeia o cookie (PHPSESSID, JSESSIONID, app-id, qualquer personalizado) e o TR7 ADC lê o valor existente. Nenhum cookie novo é adicionado. Correto quando a aplicação já rastreia sessões e você não quer adicionar um segundo cookie.

Persistência dinâmica

Tabela de persistência por chave de hash mantida em memória. Cada entrada mapeia uma chave — qualquer combinação de headers de requisição, cookies, source IP ou parâmetros de URL — para um backend. O operador define o tamanho da tabela (10K a 100M entradas, padrão 3M) e o tempo de expiração de entrada. Use quando as regras de persistência precisam ser mais flexíveis do que um único cookie ou header fixo.

SAM — Session Affinity Manager

O motor avançado de persistência baseado em cookie. Escolha quem gera o cookie, o formato do session-id e os flags de segurança — tudo pela UI, sem alterações no backend. Veja os detalhes abaixo.

SAM — Session Affinity Manager

O SAM é o método de persistência mais flexível do TR7. Onde um cookie simples fixa uma sessão, o SAM permite controlar cada propriedade desse cookie em um menu suspenso — sem mudanças no backend, sem escrever código de regra.

01

Duas fontes de cookie

Escolha quem gera o cookie de afinidade: gerado pelo TR7 (padrão — sem envolvimento do backend) ou gerado pelo backend (use o cookie de sessão existente da aplicação). Alterne entre eles sem quebrar sessões ativas.

02

Quatro formatos de session-ID — incluindo um modo Custom aberto

Opções de formato do identificador de sessão: UUID (128 bits aleatórios), IP-timestamp-aleatório (rastreável, ordenado por tempo), IP-aleatório (anônimo dentro de um tenant) ou Custom. O modo Custom abre a superfície completa de variáveis de tráfego — combine qualquer header de requisição, cookies, componentes de URL, informações de sessão TLS, source IP (bruto ou mascarado), claims de JWT, parâmetros de consulta e até campos do body da requisição com funções de transformação definidas pelo operador (mascaramento, hashing, extração de substring, normalização de capitalização, concatenação). O mesmo motor de variável e transformação impulsiona as chaves de hash de persistência Dinâmica.

03

Quatro combinações de flags de segurança

Flags de segurança de cookie: HttpOnly (sem acesso JavaScript — proteção XSS), Secure (somente HTTPS), SameSite=Strict (sem envio cross-site — proteção CSRF), SameSite=Lax (variante compatível). Combine conforme necessário.

04

Configurável pelo operador, sem código

Tudo acima é um menu suspenso por vService no painel SAM. Sem código de regra personalizado, sem integração de backend, sem regra WAAP separada para tratamento de cookie. O SAM é uma configuração, não um script.

Flexibilidade de Formato Custom e Hash

Além de cookies e IP — combine qualquer variável de tráfego

O Formato Custom do SAM e as chaves de hash de persistência Dinâmica aceitam todas as variáveis de tráfego que o TR7 ADC vê — combine-as, transforme-as, construa a regra de persistência exata que sua aplicação precisa

Formato Custom do SAM — combinações do mundo real

ID de sessão TLS + source IP /24 mascarado — mantém usuários móveis fixados no mesmo backend via retomada TLS mesmo quando o IP muda dentro de uma sub-rede de operadora (handoff de torre de celular)
Claim JWT (após decodificação) + header de tenant — SaaS multi-tenant onde os usuários autenticados de cada tenant roteiam para seu próprio cluster de backend dedicado, decodificado do próprio token
Fragmento de User-Agent + Accept-Language — separa cohorts desktop-EN de cohorts mobile-PT em pools de backend diferentes sem mudanças na aplicação
Nome de servidor TLS SNI + prefixo de caminho de URL — hospedagem SNI multi-app onde o SNI determina qual aplicação, o prefixo de caminho determina qual instância — um único ADC, muitos tenants
País Geo-IP + primeiro segmento de URL — roteamento de conteúdo geográfico que também é estruturalmente consciente de qual seção do site está sendo solicitada

Persistência dinâmica — chaves de hash com múltiplas variáveis

IP /24 + prefixo de caminho de URL — afinidade de cache geográfica vinculada à estrutura de URL (compatível com CDN sem um CDN)
Valor de header + parâmetro de consulta em minúsculas — roteamento multi-região case-insensitive onde ?user=Alice e ?user=alice chegam ao mesmo backend
Método HTTP + content-type — roteia HTTP/2 POSTs para backends otimizados para API e HTTP/1.1 GETs para backends de assets estáticos a partir de um vService
Substring de cookie + classe de IP — correspondência parcial de padrão de cookie legado quando a aplicação usa formatos de cookie não padronizados
Hash de campo do body de requisição + header de autenticação — para SOAP e APIs legadas onde o identificador de sessão fica no body, não em headers ou cookies

Funções de transformação em qualquer variável

Mascaramento de endereço IP — mascaramento de /8, /16, /24 ou comprimento de prefixo arbitrário para roteamento de subnet em nível de cohort
Extração de substring via regex — extrai um fragmento específico de um header, cookie ou URL (ex.: extrai apenas o prefixo de tenant-id de um JWT mais longo)
Normalização de capitalização — minúsculas ou maiúsculas antes do hash para roteamento case-insensitive entre clientes mistos
Hash criptográfico (MD5, SHA) — produz session IDs opacos de comprimento fixo a partir de variáveis fonte sensíveis — os dados subjacentes nunca saem da plataforma
Concatenação de strings com separadores definidos pelo operador — combine qualquer número de variáveis com delimitadores personalizados para chaves compostas únicas

Quando a persistência é mais importante

Carrinhos de e-commerce e checkout

Usuários adicionam itens em múltiplos carregamentos de página. O cookie de backend ou o cookie TR7 mantém o estado do carrinho em um backend — o checkout nunca vê um carrinho vazio.

Dashboards autenticados

Sessões autenticadas onde o cache de permissões do usuário vive em um backend. SAM com cookie gerado pelo TR7 + HttpOnly + Secure funciona sem mudanças no código do backend.

Gateways RDP e farms de desktop remoto

Sessões RDP devem se reconectar ao mesmo host. A persistência por RDP cookie lê o session ID nativo do protocolo — sem configuração extra, sem injeção de cookie.

Aplicações legadas sem gerenciamento de sessão

Aplicações que não rastreiam sessões por conta própria. A persistência por source-IP ou parâmetro de URL fixa usuários sem exigir mudanças no código da aplicação legada.

Perguntas comuns

Preciso escolher entre algoritmo de balanceamento de carga e persistência?
Não — ambas as camadas rodam de forma independente. O algoritmo de balanceamento de carga escolhe o backend para a primeira requisição de uma sessão; a persistência então fixa todas as requisições subsequentes nesse backend até o fim da sessão. Use qualquer algoritmo (round-robin, Fastest+, etc.) com qualquer método de persistência.
Qual é a diferença entre o cookie TR7 e o SAM?
O cookie TR7 é um padrão simples — o TR7 ADC gera um cookie de afinidade opaco, define padrões sensatos e fixa as sessões. O SAM é a mesma ideia, mas com controle do operador sobre cada propriedade do cookie: fonte, formato de session-ID, flags de segurança. Use o cookie TR7 para o caso comum; use o SAM quando precisar de controle granular sem mudanças no backend.
O que acontece quando o backend fixado falha?
O monitoramento de integridade do TR7 ADC detecta a falha e remove o backend do vService. As sessões existentes fixadas nesse backend são roteadas para um saudável — o usuário pode precisar se reautenticar ou atualizar o carrinho, mas a plataforma não descarta o tráfego em black hole.
Posso usar persistência por source-IP atrás de um NAT corporativo?
Source-IP funciona quando os IPs de clientes são diversos — cada usuário tem um IP visível diferente. Atrás de um NAT compartilhado (escritório corporativo, operadora móvel, CGNAT) todos os usuários aparecem com o mesmo IP, e source-IP os fixaria todos no mesmo backend. Para tráfego com NAT intenso, prefira persistência baseada em cookie (cookie TR7, SAM ou cookie de backend) ou um hash em um header ou parâmetro de URL por usuário.
A persistência de sessão afeta conexões WebSocket e HTTP/2?
Conexões de longa duração (WebSocket, streams HTTP/2) permanecem no backend ao qual se conectaram originalmente — elas são naturalmente sticky pelo tempo de vida da conexão. A persistência se torna relevante quando o mesmo usuário abre uma nova conexão e precisa chegar ao mesmo backend que antes.

Combine o método de persistência com sua carga de trabalho

Veja como 9 métodos de persistência cobrem todos os casos comuns — de gateways RDP a aplicações legadas a cookies controlados pelo SAM.