2016-06-22 36 views
0

Ich möchte etwas replizieren, was ich in RabbitMQ Web UI sehen kann - es wird mir sagen, was die Verbraucher (in Form ihrer Kanäle) sind derzeit mit einer bestimmten Warteschlange verbunden.Die Kanäle, die in irgendeiner Weise eine gegebene Queue in RabbitMQ enthalten

Wie kann ich diese Informationen von der RabbitMQ Java API wissen? Ist es möglich? Das Beste, was ich finden konnte, war herauszufinden, wie viele Verbraucher eine bestimmte Warteschlange hat, aber nichts Besseres.

Wenn die Java-API dies nicht bieten kann, gibt es eine direkte und nicht sehr CPU-intensive Art, diese Informationen mit RabbitMQ CLI (rabbitmqadmin) zu erhalten?

Dank

Antwort

1

können Sie verwenden diese API: http://rabbitmqhost:15672/api/queues/{vhost}/{queue_name}

es:

http://localhost:15672/api/queues/%2F/test_3

die json erhalten Sie liegt:

{ 

    "name": "test_3", 
    "vhost": "/", 
    "durable": true, 
    "auto_delete": false, 
    "exclusive": false, 
    "arguments": { }, 
    "node": "[email protected]", 
    "consumer_details": [ 
     { 
      "arguments": { }, 
      "prefetch_count": 0, 
      "ack_required": false, 
      "exclusive": false, 
      "consumer_tag": "amq.ctag-L417KXSKpmghjHXmRpcHkw", 
      "queue": { 
       "name": "test_3", 
       "vhost": "/" 
      }, 
      "channel_details": { 
       "name": "127.0.0.1:50427 -> 127.0.0.1:5672 (5)", 
       "number": 5, 
       "user": "test", 
       "connection_name": "127.0.0.1:50427 -> 127.0.0.1:5672", 
       "peer_port": 50427, 
       "peer_host": "127.0.0.1" 
      } 
     } 
    ], 

Über Java können Sie verwenden HOP (RabbitMQ HTTP API client for Java, Groovy, and other JVM languages)

0

könnten Sie mit rabbitmq rest api versuchen, und wie Sie rabbitmqadmin erwähnt haben, amybe ein paar Informationen von rabbitmqctl auch.