【问题标题】:Remotely shut down RabbitMQ server远程关闭 RabbitMQ 服务器
【发布时间】:2015-07-25 00:41:11
【问题描述】:

我一直在尝试远程杀死rabbitmq 服务器,但到目前为止还不是很幸运。我可以使用 pika 库轻松连接到它并发布和接收消息。

到目前为止我尝试过的步骤:

  1. 使用 RabbitMQ 的 HTTP API 删除连接

     /api/connections/name  
    
     An individual connection. DELETEing it
     willclose the connection. Optionally set the "X-Reason" 
     header when DELETEing to provide a reason.' 
    

    当我尝试http://localhost:15672/api/connection/127.0.0.1:31332 之类的东西时,我得到了一个错误:

    {"error":"Object Not Found","reason":"\"Not Found\"\n"}
    
  2. 本地使用rabbitmqadmin
  3. 尝试使用rabbitmqctl远程关闭rabbitmq服务器

【问题讨论】:

  • 您使用的是什么 OS/Linux 发行版/版本?例如,在基于systemd 的系统上,您可以远程使用systemctl,如access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
  • Linux (Ubuntu) 在两者上
  • 选项1是用于删除客户端的连接,连接到RabbitMQ服务器,所以我认为它不会杀死RabbitMQ服务器。不确定第二个选项,但第三个选项是非常可行的。如果你可以在服务器上远程执行命令“rabbitmqctl stop”,那么你就可以达到你的目的了。

标签: rabbitmq


【解决方案1】:

rabbitmqctl

这里是使用rabbitmqctl的方法

set RABBITMQ_CTL_ERL_ARGS=-setcookie FWQUGISFBWECSKWFVFRP
rabbitmqctl.bat -n rabbit@gabriele-VirtualBox stop 

二郎

这是使用Erlang 杀死远程节点的一种方法:

erl -setcookie FXQUEISFFRECSKWCVB -sname thekiller@gabriele-VirtualBox
Eshell V6.4  (abort with ^G)
(thekiller@gabriele-VirtualBox)1>  net_adm:ping('rabbit@gabriele-VirtualBox').
pong
(thekiller@gabriele-VirtualBox)2> rpc:call('rabbit@gabriele-VirtualBox', init, stop, []).
ok
(thekiller@gabriele-VirtualBox)3>
  1. 使用.erlang.cookie-sname 启动erl 控制台 具有相同的 rabbitmq 域(在我的情况下为 gabriele-VirtualBox)。
  2. 测试是否使用 ping 到达节点
  3. 致电rpc:call('rabbit@gabriele-VirtualBox', init, stop, [])

完成,你杀死了远程节点。

【讨论】:

    【解决方案2】:

    再次进行一些故障排除后,我能够使用 HTTP API 来终止活动连接。诀窍是整个连接名称是 url 编码的。

    在我的例子中,连接名称是:

        127.0.0.1:31332 -> 127.0.0.1:15672
    

    所以当我尝试以下操作时出现错误:

        http://localhost:15672/api/connection/127.0.0.1:31332   ==> object not found error
    

    只有在我对连接名称进行 URL 编码并像这样发送 CURL DELETE 后它才起作用:

        http://localhost:15672/api/connection/127.0.0.1%3A31332%20-%3E%20127.0.0.1%3A15672   
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多