RabbitMQ / ActiveMQ 或 Redis 超过 250,000 msg/s
Posted
技术标签:
【中文标题】RabbitMQ / ActiveMQ 或 Redis 超过 250,000 msg/s【英文标题】:RabbitMQ / ActiveMQ or Redis for over 250,000 msg/s 【发布时间】:2011-11-22 07:06:50 【问题描述】:尽管 redis 和消息队列软件通常用于不同的目的,但我想问一下在以下用例中使用 redis 的利弊:
事件收集器组将传入消息写入键/值。消费者获取和删除已处理的密钥 负载从 100k msg/s 开始,并在短时间内(如几个月)超过 250k,目标是达到百万 msg/s 不严格要求持久性。在失败期间丢失非日志消息是可以的 性能非常重要(因此,处理负载所需的系统数量) 邮件不必按照到达的顺序进行处理你知道 redis 选择传统消息队列软件的用例吗?还是你会考虑别的?
注意:我也看到了这个但没有帮助: Real-time application newbie - Node.JS + Redis or RabbitMQ -> client/server how?
谢谢
【问题讨论】:
【参考方案1】:鉴于您的要求,我会尝试 Redis。它将比其他解决方案执行得更好,并为您提供对持久性特征的更细粒度的控制。根据您使用的语言,您可能能够使用分片的 Redis 集群(您需要支持一致哈希的 Redis 绑定——并非所有人都这样做)。这将使您可以扩展到您指定的音量。在一些基本测试中,我在笔记本电脑上看到了 10k/秒。
如果您需要队列语义,您可能需要在 Redis 中使用列表操作(LPUSH 用于写入,BRPOP 用于读取)。
我有一个前客户,去年春天将 Redis 作为消息队列部署在生产环境中,他们对此非常满意。
【讨论】:
以上是关于RabbitMQ / ActiveMQ 或 Redis 超过 250,000 msg/s的主要内容,如果未能解决你的问题,请参考以下文章
中间件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat让你深入理解学习中间件