gpt4 book ai didi

php - RabbitMQ 错误超时

转载 作者:IT王子 更新时间:2023-10-29 00:06:37 25 4
gpt4 key购买 nike

我已经设置了 RabbitMQ 以解析来自外部 API 的大约 20.000 个请求,但它在几分钟后一直超时。它确实能够正确解析总共 20.000 个请求中的大约 2000 个。

日志文件说:

=INFO REPORT==== 16-Feb-2016::17:02:50 ===
accepting AMQP connection <0.1648.0> (127.0.0.1:33091 -> 127.0.0.1:5672)

=ERROR REPORT==== 16-Feb-2016::17:03:21 ===
closing AMQP connection <0.1648.0> (127.0.0.1:33091 -> 127.0.0.1:5672):
{writer,send_failed,{error,timeout}}

我已经增加了心跳值,但我不知道为什么会超时。配置为:Ubuntu 14.04、NGINX 1.8.1、RabbitMQ 3.6.0

非常感谢您的宝贵时间和意见!

最佳答案

我刚刚在 python 中解决了类似的问题。在我的例子中,它是通过减少消费者的预取计数来解决的,这样它在接收缓冲区中排队的消息就更少了。

我的理论是消费者的接收缓冲区已满,然后 RMQ 尝试将一些其他消息写入消费者的套接字,但由于消费者的套接字已满而无法写入。 RMQ 阻塞在这个套接字上,最终超时并关闭消费者的连接。具有较小的预取队列意味着套接字接收缓冲区不会被填满,并且 RMQ 能够写入它试图执行的任何簿记消息,因此不会在其写入时超时或关闭连接。

虽然这只是一个理论,但它似乎在我的测试中成立。

在 Python 中,可以像这样设置预取计数:

subChannel.basicQos(10);

(感谢@shawn-guo 提醒我添加这段代码)

关于php - RabbitMQ 错误超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35438843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com