Pull to refresh

AMQP отладка на примерах

Reading time2 min
Views6.1K
Что чудным образом не вошло в первую часть…

$queue = new AMQPQueue($cnn, 'Habrauser')
1257461452685: conn#74 ch#1 -> {#method<queue.declare>(ticket=0,queue=Habrauser,passive=false,durable=false,exclusive=false,auto-delete=true,nowait=false,arguments={}),null,""}
1257461452686: conn#74 ch#1 <- {#method<queue.declare-ok>(queue=Habrauser,message-count=0,consumer-count=0),null,""}

Объявление очереди прошло успешно: кол-во сообщений message-count=0, Подписчиков нет: consumer-count=0

параметры объявления очереди:
  • passive=false,
  • durable=false,
  • exclusive=false,
  • auto-delete=true,
  • nowait=false


$queue->bind("ex_2", '12345');

1257461452703: conn#74 ch#1 -> {#method<queue.bind>(ticket=0,queue=Habrauser,exchange=ex_test2,routing-key=12345,nowait=false,arguments={}),null,""}
1257461452703: conn#74 ch#1 <- {#method<queue.bind-ok>(),null,""}

Отправляем сообщение:
$mag='messsage 0';
$exchange = new Exchange('ex_2');
$exchange->publish( $msg, '12345' );

1257461452704: conn#74 ch#1 -> {#method<basic.publish>(ticket=0,exchange=ex_2,routing-key=12345,mandatory=false,immediate=false),#contentHeader(content-type=text/plain, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null),"messsage 0"}

Как пояснялось выше: Сообщения состоит из параметров, заголовка и тела,
Параметры:
  • exchange=ex_2,
  • routing-key=12345,
  • mandatory=false,
  • immediate=false

тело - понятно, что само сообщение
В заголовке можно подчерпнуть необходимую информацию по интерпретации сообщения.

Прием сообщения:

1257461452713: conn#74 ch#1 <- {#method<basic.deliver>(consumer-tag=amq.ctag-hnDha3s6i5xnJkkf0kB1DQ==,delivery-tag=6,redelivered=false,exchange=ex_test2,routing-key=12345),#contentHeader(content-type=text/plain, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null),"messsage 4"}

Из параметров стоит выделить:
consumer-tag=amq.ctag-hnDha3s6i5xnJkkf0kB1DQ==, - это временный идентификатор (типа сессии) для данной подписки
delivery-tag=6 - номер сообщения в очереди.

Как видно, данный трейсер наиболее полно отражает информацию об информационном обмене.

Более подробно о форматах AMQP сообщениях можно найти в спецификации amqp-xml-doc0-8

Желаю приятной отладки.
Tags:
Hubs:
0
Comments0

Articles