0

rabbitmq ブローカーを使用するクライアント サーバー アプリケーションがあります。クライアントは rabbitmq に接続し、サーバーにメッセージを送信します。ある時点で、サーバーがこのクライアントをrabbitmqに接続すべきではないと判断した場合、クライアントをrabbitmqボーダーから強制的に切断できるようにしたいと考えています。私の場合、切断するためにクライアントにメッセージを送信したくないことに注意してください。サーバー側では、このクライアントをrabbitmqから強制的に切断したいだけです。

これを行うための API が見つかりませんでした。どんな助けでも感謝します。

4

2 に答える 2

7

管理コンソール プラグインは、次の 2 つの方法で使用できます。

  1. 手動で、接続に移動して「強制終了」します。

  1. "delete" を使用してHTTP APIを介して/api/connections/name、ここに Python の例を示します。
import urllib2, base64
def calljsonAPI(rabbitmqhost, api):
    request = urllib2.Request("http://" + rabbitmqhost + ":15672/api/" + api);
    base64string = base64.encodestring('%s:%s' % ('guest', 'guest')).replace('\n', '')
    request.add_header("Authorization", "Basic %s" % base64string);
    request.get_method = lambda: 'DELETE';
    urllib2.urlopen(request);
if __name__ == '__main__':
    RabbitmqHost = "localhost";
    #here you should get the connection detail through the api, 
   calljsonAPI(RabbitmqHost, "connections/127.0.0.1%3A49258%20-%3E%20127.0.0.1%3A5672");
于 2015-09-05T13:39:02.613 に答える
1

rabbitmqctlクローズ/強制クローズ接続に使用できます。

rabbitmqctl close_connection <connectionpid> <explanation>

<connectionpid>から:

rabbitmqctl list_connections

#or 

rabbitmqctl list_consumers
于 2018-04-27T07:21:28.370 に答える