我正在使用6台服务器构建集群,它们都是磁盘节点。我使用rabbitmq为我们的网站收集日志文件。现在在繁忙时间,发布速率大约为每秒30k条消息。有2个主要消费者(hdfs和elasticsearch),每个消费者都需要处理所有消息,因此交付速率达到每秒60k左右。有关性能的分布式集群问题
在我的方案中,一台服务器可以保持10k的传输速率,并使用6个节点来负载平衡压力。我的解决方案是我在每个节点上创建了2个队列。每条消息都带有一个随机路由密钥(类似message.0,message.1等),以便将压力分发给每个节点。
让我困惑的是:
所有消息发送到一个节点。我应该使用HA代理来平衡这种发布压力吗?
- Durable Queues和Transient Queues之间是否有任何性能差异?
- 内存节点和磁盘节点之间是否有任何性能差异?我所知道的是内存节点和磁盘节点之间的区别仅在于元数据(如队列配置)。
- 如何提高发布和交付代码的性能?我研究,我知道的几种方法:
- 禁用确认机制(?在发布代码)
- 使HIPE(我已经做了,它帮助了很多)
- 例如,输入是1w mps(消息每秒),有两个消费者消耗所有消息。然后输出是2w mps。如果我的服务器可以处理1w mps,我需要两台服务器来处理2w-mps的压力。现在一个新的消费者也需要消费所有的消息。结果,输出命中3w mps,所以我需要另一个更多的服务器。为了得出结论,还有一个消费者可以使用所有消息,还有一台服务器?
有你有看http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/和HTTP :在问题3 //www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/ – robthewolf 2013-03-16 15:31:17
您的意思是进口还是你的意思是提高 – robthewolf 2013-03-16 15:31:37
哦,是的,我想输入“?提高' – 2013-03-18 02:51:51