【发布时间】:2013-09-13 15:24:34
【问题描述】:
现在我正在研究如何提高 Rabbit 的效率。
例如:
组件:
- TCP 负载均衡器
- 制片人
- RabbitMQ 集群
- 消费者
生产者:
2-5 个 EC2 服务器。每台服务器都安装并配置了logstash 以向 Rabbit 发送消息。这没什么特别的。只有一个要求,消息需要持久化。 (以防 I/O 不是问题)
RabbitMQ 集群:
2 个 EC2 服务器。大量的内存,cpu,良好的磁盘,良好的带宽。
消费者:
2 到 15 个消费者的数量可能非常不同。消费者连接到负载均衡器 (ELB)。其中一些使用basic.get,其中一些使用basic.consume。要求:no_ack = False,表示所有消息都需要确认。
现在我们有一个队列可以容纳 95% 的流量。我的问题是:
- 如果我在兔子集群中的每个节点上创建相同数量的队列。(现在我正在讨论如何分配这个高流量队列的负载。)每个生产者都会向自己发布消息队列。另一端的消费者将订阅所有队列并从每个队列中获取消息。它会提高性能吗?
- 交换和队列之间的一对一关系也会对性能产生影响吗?
- 最后,在这种情况下您会推荐什么? (消费者不能动态配置)
【问题讨论】:
标签: java python amazon-ec2 queue rabbitmq