Estou tentando usar uma fila de mensagens em um pequeno aplicativo da web que estou construindo com node.js. Eu olhei para resque, mas não tenho certeza se é apropriado. O objetivo é enviar notificações por push aos clientes com base no back-end e outras ações do cliente com socketio. Eu poderia fazer isso apenas com socketio, mas pensei que talvez uma fila de mensagens adequada tornaria isso mais limpo e eu não teria que reinventar a roda.
Quais são as opções lá fora?
node.js
message-queue
Bjorn
fonte
fonte
Respostas:
você pode usar o redis com o cliente node_redis extremamente rápido . Ele ainda tem semântica pubsub integrada .
fonte
Você pode usar o cliente STOMP do nó . Isso permitiria a integração com uma variedade de filas de mensagens, incluindo:
Nunca usei essa biblioteca antes, então não posso garantir sua qualidade. Mas STOMP é um protocolo muito simples, então eu suspeito que você pode hackear até o envio, se necessário.
Outra opção é usar beanstalkd com o nó . beanstalkd é uma "fila de tarefas" muito rápida escrita em C que é muito boa se você não precisa da flexibilidade de recursos dos brokers listados acima.
fonte
Plugue sem vergonha: Estou trabalhando no Bokeh : uma fila de tarefas simples, escalonável e extremamente rápida construída no ZeroMQ. Ele suporta armazenamentos de dados conectáveis para tarefas persistentes, atualmente na memória, Redis e Riak são suportados. Confira.
fonte
Aqui estão algumas recomendações que posso fazer:
node-amqp : Um cliente RabbitMQ que usei com sucesso em combinação com Socket.IO para fazer um jogo multijogador em tempo real e um aplicativo de bate-papo, entre outras coisas. Parece confiável o suficiente.
zeromq.node : Se você quiser seguir a rota não intermediada, vale a pena dar uma olhada. Mais trabalho para implementar a funcionalidade, mas é mais provável que você obtenha menor latência e maior rendimento.
fonte
zeromq.node
agora mantido aqui: zeromq.jsDê uma olhada em node-busmq - é um barramento de mensagem de nível de produção, altamente disponível e escalável apoiado por redis.
Escrevi este módulo para nossa nuvem global e atualmente está implantado em nosso ambiente de produção em vários datacenters ao redor do mundo. Ele oferece suporte a filas nomeadas, comunicação ponto a ponto, entrega e federação garantidas.
Para obter mais informações sobre por que criamos este módulo, você pode ler esta postagem do blog: All Aboard The Message Bus
fonte
kue é a única fila de mensagens que você precisa
fonte
bull
foi mais direto para mim. Comkue
eu estava perdido na documentação.Eu recomendo tentar o Kestrel , é rápido e simples como o Beanstalk, mas suporta fanout filas. Fala memcached. Ele é construído usando Scala e usado no Twitter.
fonte
Você pode querer dar uma olhada em
Redis Simple Message Queue para Node.js
Que usa Redis e oferece a maioria dos recursos do Amazons SQS.
fonte
Que tal o Azure ServiceBus? Ele suporta nodejs.
fonte
Olhe para node-queue-lib . Talvez seja o suficiente para você. Suporta node.js e navegadores. Tem duas estratégias de entrega: broadcast e round-robin. Apenas javascript.
Exemplo rápido:
fonte
Usei KUE com socketIO como você descreveu. Eu armazenei o socketID com o trabalho e pude recuperá-lo no trabalho concluído. KUE é baseado em redis e tem bons exemplos no github
algo assim....
fonte
Você também pode verificar ewd-qoper8: https://github.com/robtweed/ewd-qoper8
fonte