Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Novato em aplicativos em tempo real - Node.JS + Redis ou RabbitMQ -> cliente/servidor como?


Arquitetonicamente, ambas as opções são iguais a armazenar dados em um servidor de banco de dados Oracle para que outro aplicativo os recupere.

Tanto a solução RabbitMQ quanto a Redis exigem que seus aplicativos se conectem a um servidor intermediário que lida com as comunicações de dados. O Redis é mais parecido com o Oracle, porque pode ser usado simplesmente como um banco de dados persistente com uma API de rede. Mas o RabbitMQ é um pouco diferente porque o MQ Broker não é realmente responsável pela persistência de dados. Se você configurá-lo corretamente e usar as opções corretas ao publicar uma mensagem, o RabbitMQ realmente persistirá os dados para você, mas você não poderá obter os dados, exceto como parte do processo normal de enfileiramento de mensagens. Em outras palavras, o RabbitMQ é para comunicação de mensagens e só oferece persistência como forma de recuperação de problemas de rede ou travamentos do sistema.

Eu sugiro usar RabbitMQ e quaisquer linguagens de programação com as quais você já esteja familiarizado. Como o M em LAMP geralmente é interpretado como MySQL, isso significa que você não usaria o MySQL ou o usaria apenas para armazenamento de dados a longo prazo, não para comunicações em tempo real.

O site RabbitMQ tem uma enorme quantidade de documentação sobre a criação de aplicativos com AMQP. Eu sugiro que depois de instalar o RabbitMQ, você leia os documentos para rabbitmqctl e, em seguida, crie um vhost para experimentar. Dessa forma, é fácil limpar seus experimentos sem redefinir tudo. Também sugiro usar apenas trocas de tópicos porque você pode emular o comportamento de trocas diretas e fanout usando curingas na routing_key. Lembre-se, você só publica mensagens para trocas e só recebe mensagens de filas. A troca é responsável por combinar o padrão da chave de roteamento da mensagem com a chave de ligação da fila para determinar quais filas devem receber uma cópia da mensagem. Vale a pena aprender todo o modelo AMQP, mesmo que você planeje enviar mensagens apenas para uma fila com o mesmo nome de routing_key.

Se você está construindo seu cliente no navegador e quer construir um protótipo, então você deve considerar apenas usar o XHR hoje, e então mudar para algo como Kamaloka-js que é uma implementação Javascript pura do AMQP (o Protocolo AMQ) que é o protocolo padrão usado para se comunicar com um intermediário de mensagens RabbitMQ. Em outras palavras, construa-o com o que você conhece hoje e, em seguida, acelere-o mais tarde com algo (AMQP) que tem um futuro de longo prazo em sua caixa de ferramentas.