我使用2台服务器分别打开200个频道,每个频道有100个消费者。每个消费者发送和接收,因此渠道与消费者的比例为2:1(这些都基于Java,Spring等)。
当我使用此设置时,我看到的是性能急剧下降。如果我只使用其中一个服务器,那么吞吐量就可以了,当我的负载测试加速时,每秒消耗大约1200条消息并确认。
然而,当我使用完全相同的配置添加第二台服务器时,吞吐量会崩溃。即使削减消费者和渠道,以便两个服务器现在都使用最初使用1的总数(即2个服务器创建总共200个通道而不是1个服务器创建200个)仍然只使用1个服务器以上配置。
消费者的度量标准似乎表明没有额外的处理时间,所以我想知道Rabbit在不同的服务器连接之间跳转时是否需要进行大量的上下文切换?
我无法解释,否则,我可以通过我的服务/消费者诊断出来的一切似乎都很好......