Получить аргументы и атрибуты очереди в RabbitMQ

В REST API RabbitMQ вы можете получить различную информацию о существующей очереди (http://rabbit.example.com:15672/api/queues/):

{
    "memory": 10888,
    "messages": 0,
    "messages_details": {
        "rate": 0
    },
    "messages_ready": 0,
    "messages_ready_details": {
        "rate": 0
    },
    "messages_unacknowledged": 0,
    "messages_unacknowledged_details": {
        "rate": 0
    },
    "idle_since": "2014-12-12 13:59:46",
    "policy": "",
    "exclusive_consumer_tag": "",
    "consumers": 0,
    "backing_queue_status": {
        "q1": 0,
        "q2": 0,
        "delta": [
            "delta",
            "undefined",
            0,
            "undefined"
        ],
        "q3": 0,
        "q4": 0,
        "len": 0,
        "pending_acks": 0,
        "target_ram_count": "infinity",
        "ram_msg_count": 0,
        "ram_ack_count": 0,
        "next_seq_id": 0,
        "persistent_count": 0,
        "avg_ingress_rate": 0,
        "avg_egress_rate": 0,
        "avg_ack_ingress_rate": 0,
        "avg_ack_egress_rate": 0
    },
    "status": "running",
    "name": "${sistemaConsumidor}.${domain}.${evento}.RetryQueue",
    "vhost": "/",
    "durable": true,
    "auto_delete": true,
    "arguments": {
        "x-dead-letter-exchange": "${exchangeType}.${domain}",
        "x-message-ttl": 5000,
        "x-dead-letter-routing-key": "${sistemaProdutor}.to.${sistemaConsumidor}.${domain}.${evento}"
    },
    "node": "rabbit@CI-41644-7"
}

Но с Spring-AMQP или RabbitMQ-клиентом для Java это кажется невозможным.

Например, что-то вроде этого:

rabbitAdmin.getQueueInformation ("queueName")

or

channel.queueInformation ("queueName")

person Rafael Gouveia    schedule 12.12.2014    source источник
comment
Что ж, если у RabbitMQ есть интерфейс Rest, вы можете просто получить данные с помощью старого доброго http-запроса самостоятельно.   -  person JohnDoe90    schedule 12.12.2014
comment
Вся система поддержки, которую мы построили в компании, использует spring-AMQP.   -  person Rafael Gouveia    schedule 12.12.2014


Ответы (1)


Spring-AMQP и клиент Rabbit предназначены для протокола AMQP во время выполнения; вы можете использовать Spring RestTemplate для доступа к ReST API; он имеет встроенную поддержку jackson для преобразования JSON.

На более высоком уровне вы можете использовать http://docs.spring.io/spring-integration/reference/html/http.html#http-outbound.

person Gary Russell    schedule 12.12.2014