rabbitmq - RabbitMQ - 需要关闭所有连接,但 close_all_connections 不起作用
问题描述
我们有一组运行 Windows 应用程序的客户端 PC,该应用程序是打开与 Windows 2016 服务器上运行的 RabbitMQ 3.7.7 (Erlang 20.3) 实例的连接的客户端。
我们的客户端应用程序在启动时打开一个连接。如果它无法打开连接,因为出现错误(例如在 RabbitMQ 上已达到最大连接限制),它会显示错误消息。
我们的应用程序中有一个错误,它有时会使连接保持打开状态。我们(还)无法修复这个错误,因为在 1 月 1 日这一天修补应用程序是不可能的。
所以很自然地我们想告诉 RabbitMQ 关闭所有的连接(我们可以在一夜之间完成 - 没有人应该让应用程序在一夜之间运行 - 但如果我们在白天关闭它们并不重要:RabbitMQ 相关的特性直到下个月中旬才需要或使用客户端应用程序,除了打开连接,不能关闭)。
但是重新启动 RabbitMQ 会使它们全部打开。而且rabbitmqctl close_all_connections --global也不会关闭连接(也许它会向客户端发送关闭消息,但如果客户端不再监听,则保持连接打开)。
我们可以做些什么来强制 RabbitMQ 关闭所有连接,而不用在 Erlang 中编写我们自己的应用程序来终止进程?
[更新:我们现在将以正确的方式修复它,但也许应该将问题留在这里以防它对其他人有所帮助?]
解决方案
推荐阅读
- java - @ApiModelProperty 大摇大摆的 HTML 报告
- javascript - 为什么我的回调不能正常工作?
- php - 调用未定义的方法 Laravel\Lumen\Routing\Router::pos()
- elk - 如何为数据集的多行条件检查配置 Logstash 过滤器
- python - python黑白图像检测
- c# - 电源事件的 UWP 后台任务触发器
- emacs - Emacs:访问格式为 path:line:column 的文件
- asp.net-identity - 如何在asp.net core web api中实现otp授权?
- javascript - 如何仅显示前 5 个最高百分比的饼图标签
- jsp - 如何获取表单对象?