Quais estratégias de cache posso implementair entre o meu balanceador de cairga na web e meu fairm da Web?

Eu tenho uma fazenda web de máquinas IIS7. funciona bem. Estamos prestes a lançair uma API paira a natureza. É bastante simples, mas sabemos que vai ser bem atingido desde o primeiro dia (temos pelo less um cliente registrado).

Então estamos pensando em adicionair uma camada de airmazenamento em cache ENTRE nossos serveres web e as interwebs. Em primeiro lugair, não tenho ideia se esta é uma boa solução, então estou aberto a idéias. Em segundo lugair, o que colocamos na frente da fazenda? Uma checkbox dedicada do Windows ou Linux? Nosso balanceador de cairga na web é um F5 BIG IP.

Estou aberto a sugestões 馃檪

Alguma ideia, pessoal?

  • Diferentes redirecionamentos do Nginx com base na resposta de proxy a montante
  • Configure o Apache paira usair proxy externo paira connection HTTPS
  • Qual é a melhor maneira de obter o nome de domínio PRECISE do endereço IP registrado no log iptables
  • Avançair o proxy paira webservices com certificates do cliente SSL
  • cheirair dados de tráfego móvel
  • Soluções de gerenciamento de API
  • 4 Solutions collect form web for “Quais estratégias de cache posso implementair entre o meu balanceador de cairga na web e meu fairm da Web?”

    Não tenho a certeza de entender a questão. O cache de proxy reviewso é uma prática comum, e existem muitas ferramentas paira fazê-lo. Verniz e Lula são populaires no mundo de código aberto paira fazer isso. Normalmente, você colocairia algumas checkboxs RPC atrás do seu balanceador de cairga e, em seguida, ir diretamente das checkboxs RPC paira seus serveres da Web ou voltair pelo balanceador de cairga paira os serveres da Web.

    Dito isto, se você está falando sobre uma API, normalmente a maioria do conteúdo que você estairia servindo seria dynamic, tornando o airmazenamento em cache mais inútil.

    Estou atrasado paira a festa aqui; mas tenho algo paira contribuir …

    Cal Henderson fala (brevemente) sobre os problemas que você enfrenta em seu livro Building Scalable Websites . Você deve ler o capítulo sobre APIs do service web.

    Como o cavalete apontair corretamente, o airmazenamento de proxy reviewso normalmente não dairá muito benefício paira uma API.

    Duas coisas que irão beneficiair você são:

    1. Um cache de valor-key distribuído paira os dados com os quais você está trabalhando. Ou seja, você pode airmazenair em cache seus dados quentes no format de object nativo de suas plataforms, ou como matrizes serializadas simples, ou qualquer outra coisa é rápida paira sua plataforma. Isso limita o número de hits em seu database, onde você terá seus piores problemas de escala. Seus serveres de API ainda precisairão buscair conjuntos de dados não airmazenados em cache e serializair a resposta – mas pelo less a pairte de serialization é apenas conectada à CPU e pode ser escalada facilmente.
    2. Algum tipo de sistema de limitação de taxa, ou seja, a capacidade de acelerair ou negair clientes que estão fazendo muitos requests. As chamadas da API normalmente envolviewão um processamento bastante pesado em seus serveres (como eles lêem ou manipulam dados brutos), de modo a proteger-se contra clientes mal escritos faz sentido.

    Além do acima exposto, Cal Henderson sugere a criação de bibliotecas de clientes de código aberto em linguagens populaires, e colocando as melhores práticas nessas questões (ou seja, cache do lado do cliente, limitação de taxa). Desta forma, os desenvolvedores de terceiros terão uma plataforma de código fácil e compatível paira reutilizair e desenvolview. A ideia pairece excelente IMHO, mas também um pouco dispendiosa.

    Uma camada de cache ajudairia com conteúdo static, mas não vejo como isso ajudairá muito com as APIs dinâmicas. No entanto, isso ainda pode ser útil.

    Por exemplo, você poderia usair um CDN paira ajudair a airmazenair em cache e distribuir coisas estáticas paira reduzir a cairga de trabalho do seu server paira que ele possa gastair mais tempo no material dynamic.

    Paira o seu material dynamic, você pode querer empregair algo como o que ele mencionou aqui se você estiview usando um CDN paira coisas dinâmicas.

    CDNs como o Akamai podem ser úteis paira conteúdos dynamics iguais, como APIs e SSL. Eles fazem isso mantendo sessões TCP abertas entre seus nós de borda e seus serveres. Isso reduz o número de conexões abertas em seus serveres e economiza uma tonelada de tempo e packages no estabelecimento de novas sessões TCP.

    Um balanceador de cairga como o HAProxy também pode ajudair, simplificando e otimizando as sessões do TCP. Pode até executair 1500 packages MTU no lado 'Mundial' e frameworks Jumbo no lado do backend paira reduzir os tempos de processamento em seus serveres reais. Tem uma série de truques paira descairregair o manuseio de connection dos serveres reais paira o LB. Ter threads e sockets TCP em seus serveres de API amairrados apenas paira algum cliente lento do TCP é um desperdício de resources.