redis - 使用 Redis 发布订阅。相对于 RabbitMQ 的优势/劣势

标签 redis message-queue rabbitmq

我们的要求很简单。向订阅主题的用户发送消息。我们需要我们的消息传递系统能够近乎实时地支持数百万个主题,并且可能支持任何给定主题的数百万订阅者。我们的应用程序是用 Java 构建的。

由于社区支持、文档和功能(可能它会提供我们需要的一切),我们几乎决定使用 RabbitMQ。但我非常倾向于使用 Redis,因为它看起来很有前途且轻量级。老实说,我对 Redis 作为消息传递系统的了解有限,但看到越来越多的公司将其用作队列(使用 Ruby Resque),我想知道是否有 Java 中的 Resque 之类的产品,有什么优势或使用 Redis 作为 MQ 相对于 RabbitMQ 的缺点。

最佳答案

RabbitMQ 支持集群,现在具有主动/主动高可用性队列,允许更大的横向扩展和可用性选项,然后开箱即用的 Redis 成为可能。

RabbitMQ 使您可以更好地控制一切,从交换/队列的用户/权限,到特定交换或队列的持久性(磁盘与内存),再到交付保证(交易、发布者确认)。

它还允许在您的拓扑(扇出、主题、直接)和路由到多个队列、使用私有(private)队列和回复的 RPC 等方面提供更多的灵 active 和选项。

关于redis - 使用 Redis 发布订阅。相对于 RabbitMQ 的优势/劣势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382655/

相关文章:

ruby-on-rails - 将redis部署到heroku无法连接

Docker Swarm Redis 和 Sentinel with master-slave replication IP resolution client failure

database - 如何使用Rust从RediSearch检索数据?

c++ - 在 .c 文件中使用 Linux 中的 msgget 创建消息队列接收函数未实现错误

c# - RabbitMQ:如何防止QueueDeclare自动生成新的Queue

RabbitMQ 重新传递已拒绝的重新排队消息的退避?

node.js - 如何使用 REDIS + Node.js 注销我的应用程序

message-queue - Mosquitto:外发消息被丢弃

rabbitmq - RabbitMQ 中的主题交换与直接交换

python - RPC 调用多个消费者