RabbitMQ/ActiveMQ或Redis超过250,000 msg/s

ano*_*ous 23 performance activemq-classic message-queue rabbitmq redis

虽然redis和消息排队软件通常用于不同的目的,但我想问一下使用redis的优缺点以下用例:

  • 事件收集器组将传入消息写为键/值.消费者获取和删除已处理的密钥
  • 负载从100k msg/s开始,在短时间内(如月)超过250k,目标是达到百万msg/s
  • 坚持不是严格要求的.在失败期间丢失非日志消息是可以的
  • 性能非常重要(因此,处理负载所需的系统数量)
  • 消息不必按照它们到达的顺序进行处理

你知道redis选择传统消息排队软件的用例吗?或者你会考虑别的吗?

注意:我也看过这个但没有帮助: 实时应用新手 - Node.JS + Redis或RabbitMQ - >客户端/服务器怎么样?

谢谢

Jam*_*per 19

鉴于您的要求,我会尝试Redis.它将比其他解决方案表现更好,并且可以对持久性特征进行更精细的控制.根据您使用的语言,您可以使用分片Redis群集(您需要支持一致哈希的Redis绑定 - 并非所有都支持).这将允许您缩小到您指定的音量.在一些基本测试中,我在笔记本电脑上看到了10k/sec.

如果您想要队列语义,您可能希望在Redis中使用列表操作(LPUSH用于写入,BRPOP用于读取).

我有一个以前的客户端,在去年春天将Redis作为消息队列部署在生产中,他们对此非常满意.