登录
首页 >  Golang >  Go问答

为什么 RabbitMQ 在不使用时不会保持连接状态?

来源:stackoverflow

时间:2024-04-10 08:48:38 195浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《为什么 RabbitMQ 在不使用时不会保持连接状态?》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我在我的应用程序中使用了 http://github.com/streadway/amqp 包来处理与远程 RabbitMQ 服务器的连接。一切正常并且工作正常,但是当连接长时间空闲(例如 6 小时)时,它就会关闭。我在 go 例程中始终检查 NotifyClose(make(chan *amqp.Error)) 并返回:

异常 (501) 原因:“写入 tcp 192.168.133.53:55424->192.168.134.34:5672:写入:管道损坏”

  1. 为什么会发生这个错误? (我的代码有问题吗?)

  2. 连接可以空闲多长时间?

  3. 如何防止这个问题?


解决方案


正如 Cosmic Ossifrage 所说,错误表明您的 RabbitMQ 客户端已断开连接。

客户端和服务器之间可能有很多东西可以/将要删除休眠连接,因此不值得关注连接可以休眠多长时间。您想要在连接管理器中设置请求的心跳间隔。

https://www.rabbitmq.com/heartbeats.html

我不熟悉您使用的框架,但我发现它在 connection.go 中有一个 defaultHeartbeat 字段。您可能需要试验该值以找到最佳平衡,即停止连接被终止,但保持活动流量不会过于频繁地访问服务器。

今天关于《为什么 RabbitMQ 在不使用时不会保持连接状态?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>