Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Cache distribuído - Artigo Web Mobile 34
Manter um web site envolve vários fatores que vão desde a programação em si, até a alocação de um servidor apropriado para sua hospedagem. Existe um fator que muitos ignoram no momento do desenvolvimento. O crescimento de acessos. Quanto mais acessos simultâneos um web site possui, mais pesado ele se torna para quem está tenta abri-lo. Existem técnicas que contornam esse problema. Neste artigo será abordado o recurso de utilização de cache.
Mobile magazine 34
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Mobile magazine 34
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Mobile magazine 34
Cache distribuído
Aumente a performance de seu site
Vou contar uma estória aqui que certamente é conhecida. Foi dado a uma equipe um projeto de web site para ser desenvolvido. Quando o projeto foi dado como pronto, foi hospedado em um bom serviço de hospedagem. Os desenvolvedores continuaram empenhados em implementar coisas novas, mas após algum tempo de uso, o proprietário do web site procurou novamente a equipe e reportou um problema que não era esperado: lentidão. Usuários desse web site começaram a reclamar do tempo de respostas e aos poucos iam diminuindo suas visitações, consequentemente o proprietário ia perdendo mercado. Os desenvolvedores então reviam seus códigos, olharam a estrutura do serviço de hospedagem, mas não conseguiam encontram o problema. Realmente não havia problema algum nisso, mas sim, na forma que a estrutura era utilizada.
Apontando o problema
O ambiente de testes raramente é o mesmo do ambiente de produção. Um serviço de hospedagem de qualidade geralmente possui múltiplos servidores que controlam a carga dos web sites hospedados, realizando o devido redirecionamento quando for necessário. Durante o desenvolvimento esse cenário não é reproduzido. Como esses servidores não apontam para um mesmo local, mesmo que um primeiro acesso carregue os dados para o cache local de um servidor, ao ser acessado uma segunda vez, um segundo servidor pode ser acionado e acabar por carregar novamente os dados colocando-os em seu cache.
Descobrindo a solução
Em um ambiente onde se tenha vários servidores, cada um possuindo sua própria memória, a implementação de um cache local não funciona, pois esses servidores não compartilham esse cache. A solução é empregar o cache distribuído.
O cache distribuído toma para si a responsabilidade de centralizar informações e compartilha-las nos possíveis servidores existentes. A Figura 1 demonstra sua aplicação.
Em um ambiente de cache distribuído existe um servidor que é utilizado para suprir o cache de informações para qualquer outro servidor. Assim, quando um outro servidor vai realizar a requisição de informações ele não acessa mais diretamente a fonte de dados, mas pede ao servidor de cache a informação que ele necessita. Se essa informação já existir no cache ela é retornada ao servidor solicitante sem tocar a fonte de dados, caso contrário é permitido ao servidor solicitante obter essa informação e ele por sua vez já a aloca em cache e prossegue com seu procedimento normalmente. A informação deixada fica disponível para qualquer outra requisição. Se outro servidor requer essa mesma informação outrora acessada, ela é obtida de forma muito mais veloz porque está no cache, em memória.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Aumente a performance de seu site
Vou contar uma estória aqui que certamente é conhecida. Foi dado a uma equipe um projeto de web site para ser desenvolvido. Quando o projeto foi dado como pronto, foi hospedado em um bom serviço de hospedagem. Os desenvolvedores continuaram empenhados em implementar coisas novas, mas após algum tempo de uso, o proprietário do web site procurou novamente a equipe e reportou um problema que não era esperado: lentidão. Usuários desse web site começaram a reclamar do tempo de respostas e aos poucos iam diminuindo suas visitações, consequentemente o proprietário ia perdendo mercado. Os desenvolvedores então reviam seus códigos, olharam a estrutura do serviço de hospedagem, mas não conseguiam encontram o problema. Realmente não havia problema algum nisso, mas sim, na forma que a estrutura era utilizada.
Apontando o problema
O ambiente de testes raramente é o mesmo do ambiente de produção. Um serviço de hospedagem de qualidade geralmente possui múltiplos servidores que controlam a carga dos web sites hospedados, realizando o devido redirecionamento quando for necessário. Durante o desenvolvimento esse cenário não é reproduzido. Como esses servidores não apontam para um mesmo local, mesmo que um primeiro acesso carregue os dados para o cache local de um servidor, ao ser acessado uma segunda vez, um segundo servidor pode ser acionado e acabar por carregar novamente os dados colocando-os em seu cache.
Descobrindo a solução
Em um ambiente onde se tenha vários servidores, cada um possuindo sua própria memória, a implementação de um cache local não funciona, pois esses servidores não compartilham esse cache. A solução é empregar o cache distribuído.
O cache distribuído toma para si a responsabilidade de centralizar informações e compartilha-las nos possíveis servidores existentes. A Figura 1 demonstra sua aplicação.
Em um ambiente de cache distribuído existe um servidor que é utilizado para suprir o cache de informações para qualquer outro servidor. Assim, quando um outro servidor vai realizar a requisição de informações ele não acessa mais diretamente a fonte de dados, mas pede ao servidor de cache a informação que ele necessita. Se essa informação já existir no cache ela é retornada ao servidor solicitante sem tocar a fonte de dados, caso contrário é permitido ao servidor solicitante obter essa informação e ele por sua vez já a aloca em cache e prossegue com seu procedimento normalmente. A informação deixada fica disponível para qualquer outra requisição. Se outro servidor requer essa mesma informação outrora acessada, ela é obtida de forma muito mais veloz porque está no cache, em memória.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal mobile
Publicidade
Paulo Quicoli
Space do autor
Editor Geral da revista ClubeDelphi e editor técnico da .NET Magazine. Formado em processamento de dados pela FATEC-TQ. Atua como arquiteto de projetos .NET na Siplan Control-M unidade Jaboticabal (www.siplancontrolm.com.br), prof. na FATEC-TQ e consultor na NHibernate Brasil (www.nhibernatebrasil.n...
Space do autor


0
0
