Tag: 发布订阅

发布/订阅可靠消息:Redis VS RabbitMQ

背景 我正在制作一个发布/订阅典型应用程序,发布者向消费者发送消息。 发布者和消费者在不同的机器上,它们之间的连接偶尔会中断。 目的 这里的目标是确保无论连接发生什么事情,或者机器本身,发布者发送的消息总是被消费者接收。 消息的sorting不是必须的。 问题 根据我的研究,RabbitMQ是这种情况下的正确select: Redis将RabbitMQ作为Logstash和elasticsearch之间的数据代理/消息传递系统 然而,尽pipeRabbitMQ有一个关于发布和订阅的教程,但本教程不会将我们介绍给持久队列,也不会提到确认我认为是确保消息传递的关键。 另一方面,Redis也能做到这一点: http://abhinavsingh.com/customizing-redis-pubsub-for-message-persistence-part-2/ 但我找不到任何正式的教程或示例,而我目前的轻描淡写导致我相信,持久的队列和消息确认必须由我们来完成,因为Redis主要是内存数据存储而不是像RabbitMQ这样的消息代理。 问题 对于这个用例,哪个解决scheme最容易实现? (Redis解决scheme还是RabbitMQ解决scheme?) 请提供一个与您认为最好的例子的链接!

过滤通过Meteor订阅过滤的数据

如果我有订阅 Meteor.publish('itemsByProjectId', function (projectId) { check(projectId, String); return Items.find({ projectId: projectId}); }); 那么我只能订阅与该项目相关的项目。 在输出模板中的项目时是否还需要使用Items.find({ projectId: projectId }) ,或者使用Items.find()是否足够,因为已经通过订阅过滤了集合。 在这种情况下最好的做法是什么? 我没有看到需要再次过滤数据。