远程关闭RabbitMQ服务器

时间:2015-07-20 19:30:43

标签: 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服务器

2 个答案:

答案 0 :(得分:0)

<强> 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. 使用erl.erlang.cookie启动-sname控制台 使用相同的rabbitmq域(在我的情况下为gabriele-VirtualBox)。
  2. 测试您是否使用ping
  3. 到达节点
  4. 致电rpc:call('rabbit@gabriele-VirtualBox', init, stop, [])
  5. 完成,你杀死了远程节点。

答案 1 :(得分:0)

经过一番重复的故障排除后,我能够使用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