Usando Cache Com Redis E Nodejs

19 May 2018 18:34
Tags

Back to list of posts

Na atualidade, existem várias APIs em Node.js que trabalham com muito processamento, consulta em banco de fatos relacionais e não relacionais, acesso em disco, serviços legados e inclusive algumas APIs. Enormes fatores que geram tempo de requisição, banda e processamento nos deixam sujeitos a estruturas que, se mal planejadas, são capazes de gerar um débito técnico no futuro, exigindo alterações pela arquitetura para aprimorar a performance da aplicação. Outras vezes ficamos presos a serviços impostos pelo freguês e seus requisitos, o que nos evita de implementar qualquer coisa mais estruturado.Quando você percebe todos os detalhes da sua aplicação entende que conseguem existir processos que são efetuados diversas vezes e retornam detalhes que não são alterados com tanta regularidade. A cada solicitação feita, como a leitura de um arquivo, serviços de terceiros ou banco, caímos em uma série de fatores que implicam em tempo, processamento e banda. Uma ocorrência, por exemplo, seria eu ter que acessar um arquivo e retorná-lo ao usuário.Nesse caso, como agora divulgado pela literatura, a leitura de um arquivo é lenta e depende de diversas condições, entre tempo de Seek, o quão espalhado este arquivo está no seu hd para servidor, entre algumas. De imediato, pense outra ocorrência. Sua API deve fazer uma requisição para cinco outros serviços que irão desde a uma request SOAP, consulta ao banco, serviços de terceiros e uma pesquisa no Elasticsearch.Supondo que cada requisição demore 1000ms, precisaríamos de um tempo total de 5000ms para retornar a requisição. No caso do Node.js, poderíamos utilizar um pacote npm para que as requisições fossem chamadas em paralelo. Mesmo assim sendo, se eu fizer a mesma requisição várias vezes na minha API e os detalhes dos outros serviços não forem alteradas periodicamente, nossa aplicação realizará o mesmo procedimento diversas vezes.Botões 'Start' e 'Select' de imediato se chamam 'View' e 'Menu'Você paga a diferença pela marcaEonica Braçal disse: 30/07/doze ás 00:Quarenta e oitoLicenciamento dos usuários de e-mailis?6rhswfPs9C_kPRKtgLc33XL8gc4BAN4NNIkTCWGZUw8&height=159 Não seria mais fácil nossa aplicação adquirir distinguir que essa solicitação de imediato foi feita e retornar os dados salvos em algum espaço, sem a necessidade de realizar tudo novamente? E desejamos fazer isso de várias formas, entretanto o padrão mais famoso é usando cache. O uso do cache poderá destinar-se de ponta a ponta em nosso sistema, seja na camada do freguês, do servidor web até depois, na aplicação. Pela camada do servidor web, no caso do Ngnix poderia ser adicionado o ETAG que ajudaria a distinguir no momento em que houve uma alteração naquela requisição e Expires/cache-control pra tempo de vida que poderá ser utilizado aquele assunto.Pela camada do consumidor, mesmo construindo estruturas que salvem esses detalhes, seria pelo menos necessário montar uma interface com a aplicação para reconhecer no momento em que os dados ainda são capazes de ser utilizados. Além do mais, possuímos abundantes tipos de consumidores. Se quiser saber mais sugestões sobre isto desse conteúdo, recomendo a leitura em outro fantástica site navegando pelo link a seguir: encontrar mais. hd storage (www.sinergiati.com.br) Explicando somente de Browser, temos os mais antigos, que são difíceis de depurar, browsers de dispositivos móveis de versões antigas, além do suporte às APIs que qualquer um detém. Na camada de servidor internet podemos ter outro defeito, como um controle generalizado de cache. Pela camada da aplicação usar cache em memória assim como não é uma ideia tão favorável, que uma interessante prática é não salvar o estado de nada pela API (Stateless).Seria uma complicação precisar escalar horizontalmente e atingir manter a integridade desse cache. Uma das maneiras mais robustas de tratar estes empecilhos é ter uma característica melhor no cache, utilizando um servidor ou serviço. O mais comum atualmente é o Redis, que é um banco de dados NoSQL de chave e valor. Segundo um survey gerado pelo RisingStack com mais de mil desenvolvedores, essa ferramenta é adotada por quase 50% dos desenvolvedores que trabalham com Node.js, o que mostra a convicção deles deste meio ambiente.Contudo por que nte.escolher o Redis em vez do Memcached, plataforma que neste instante está há bastante tempo no mercado? Comparando os 2, ambos podem executar tarefas de cache com alta performance alocando tudo pela memória, logo se haver um defeito e o servidor do memcached for reiniciado, o seu cache estaria a salvo numa memória volátil. Com o redis o caso neste momento é diferente, já que ele tem um fallback e salva tudo em disco.

Comments: 0

Add a New Comment

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License