Fla*_*nix 18 javascript publish-subscribe rabbitmq redis node.js
我正在制作一个发布/订阅典型应用程序,其中发布者向消费者发送消息.
发布者和消费者在不同的机器上,它们之间的连接偶尔会中断.
这里的目标是确保无论连接发生什么,或者机器本身,发布者发送的消息总是由消费者接收.
消息的排序不是必须的.
根据我的研究,RabbitMQ是这种情况的正确选择:
然而,尽管拥有的RabbitMQ教程关于发布和订阅本教程不存在我们持久性的队列也未提及确认,我相信是关键,确保邮件传递.
另一方面,Redis也能够做到这一点:
但是我找不到任何正式的教程或示例,我目前的轻描淡写使我相信持久性队列和消息确认必须由我们完成,因为Redis主要是在内存数据存储区而不是像RabbitMQ这样的消息代理.
Fla*_*nix 17
我最初想要发布和订阅消息和队列持久性.
理论上,这并不完全适合发布和订阅:
实际上,考虑到我的需求,我需要更多的工作队列模式,甚至是RPC模式.
人们说两者都应该很容易,但这确实是主观的.
RabbitMQ总体上有更好的官方文档,在大多数语言中有清晰的例子,而Redis信息主要在第三方博客和稀疏的github repos中 - 这使得它更难找到.
至于这些例子,RabbitMQ有两个例子可以清楚地回答我的问题:
通过混合这两个,我能够让发布者向几个消费者发送可靠的消息 - 即使其中一个失败了.信息不会丢失,也不会被遗忘.
RabbitMQ的垮台:
至于redis,它在这个博客中有一个很好的持久队列示例:
redis的垮台:
在我看来,这是最糟糕的兔子.
我最终选择了rabbitmq,理由如下:
考虑到这一点,对于这个具体案例,我有信心说redis在这种情况下是最糟糕的兔子.
希望能帮助到你.
归档时间: |
|
查看次数: |
8461 次 |
最近记录: |