为什么我的rabbitmq群集连接和通道保持流状态

为什么我的rabbitmq群集连接和通道保持流状态,rabbitmq,Rabbitmq,最近我正在测试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

最近我正在测试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连接和通道状态保持在流状态。 但是为什么呢?有没有办法提高性能

我认为流状态可以让发布者快速发送消息,以防服务器无法将消息排队

但我用来测试的发送速率似乎并不高,为什么它们仍然处于流状态

有人能帮忙吗?提前感谢。

RabbitMQ将降低发布速度过快、队列无法跟上的连接的速度

如果您想了解更多有关信贷流的信息,可以阅读以下内容,尤其是:

要了解credit_流及其设置如何影响发布,让我们看看RabbitMQ中内部消息如何流动。请记住,RabbitMQ是在Erlang中实现的,在Erlang中,进程通过相互发送消息进行通信


您可以尝试增加
credit\u flow
参数

在我的情况下,由于内存不足(太多未确认的消息会导致内存不足,从而导致连接处于流状态)

谢谢Gabriele,谢谢Gabriele。我读了文档链接,但我有点不清楚。假设rabbitmq set credit\u flow\u default\u credit by defalut InitialCredit默认设置为200,MoreCreditAfter设置为50,那么它将出现一个具有2个队列(q1和q2)的通道,因此通道将启动200*2个信用?是这样吗?如果每个队列传递50条消息,它将向通道返回50个信用,不是吗?假设q1非常慢,不能再向通道返回任何信用,但q2足够快,可以快速返回信用。这样,第二季度将能够授予该渠道信用,该渠道将不会被封锁,对吗?因此,我可以说,如果一个连接有多个通道(或一个通道有多个队列),那么阻塞该连接或通道的可能性较小(因为如果一个通道或队列更快,它可以向上游授予积分)。如果您想了解更多有关内部结构的信息,请阅读此文章