这几天我正在测试我的rabbitmq 3节点集群, 我使用java工具进行测试,
[root@server-42 bin ]$ ./runjava com.rabbitmq.perf.PerfTest -x1 -y1 -e testex -Hmqp://username:password@123.123.123.2/test' -t topic -k sample.info -s 1500 -i 20
id: test-154506-639, starting consumer #0
id: test-154506-639, starting consumer #0, channel #0
id: test-154506-639, starting producer #0
id: test-154506-639, starting producer #0, channel #0
id: test-154506-639, time: 20.000s, sent: 8913 msg/s, received: 8804 msg/s, min/avg/max latency: 6317/251907/727492 microseconds
id: test-154506-639, time: 40.004s, sent: 8993 msg/s, received: 8991 msg/s, min/avg/max latency: 157294/256691/387926 microseconds
id: test-154506-639, time: 60.011s, sent: 9029 msg/s, received: 9019 msg/s, min/avg/max latency: 146744/255631/384696 microseconds
id: test-154506-639, time: 80.017s, sent: 8946 msg/s, received: 8972 msg/s, min/avg/max latency: 164969/259147/723908 microseconds
id: test-154506-639, time: 100.019s, sent: 8971 msg/s, received: 8949 msg/s, min/avg/max latency: 164012/258115/353767 microseconds
我发现我的rabbitmq连接和通道状态保持流量状态。 不过为什么呢?有没有办法提高性能?
我认为流状态是为了让发布者快速发送消息,以防服务器无法对消息进行排队。
但我以前测试的发送率似乎不高,为什么它们仍处于流量状态?
任何人都可以帮忙吗?提前谢谢。答案 0 :(得分:1)
RabbitMQ将降低发布速度太快的连接速度,以便队列跟上。
如果您想了解有关信用额度的更多信息,请参阅此doc,特别是:
要了解credit_flow及其设置如何影响发布,让我们看看内部消息如何在RabbitMQ中流动。请记住,RabbitMQ是在Erlang中实现的,其中进程通过相互发送消息进行通信。
您可以尝试增加credit_flow
参数
答案 1 :(得分:0)
在我的情况下,由于内存不足,我得到了此消息(太多未确认的消息导致内存已满,从而使连接处于流状态)