複雑な
AMQPメッセージングシステムの開発には、コードのデバッグだけでなく、メッセージの構造とルーティングの理解も必要です。
ハングまたはメッセージの欠落の原因を理解することが困難な場合があります。 ただし、パッケージrabbitmq-java-clientに含まれる開発者RabbitMQにはクラスTracerがあり、
これにより、交換に関する情報をコンソールモードで表示できます。
トレーサーは、クライアントポート(既定の5673)をリッスンし、サーバーポート(既定の5672)にそれらを送信し、コンソールに情報を表示するAMQPプロキシです。
インストール。3つのステップで:
仕事//
java -cp rabbitmq-client.jar:commons-io-1.2.jar:commons-cli-1.1.jar com.rabbitmq.tools.Tracer
//
runjava.sh com.rabbitmq.tools.Tracer listenPort connectHost connectPort listenPort
- port AMQP ( default 5673)
- connectHost - host RabbitMQ ( default localhost).
- connectPort - , ( default 5672).
さらに見る:
$cnn = new APMQConection();
1257461452674: conn#74 ch#0 <- {#method<connection.start>(version-major=8,version-minor=0,server properties={product=RabbitMQ, platform=Erlang/OTP, information=Licensed under the MPL. See www.rabbitmq.com, copyright=Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd., version=1.5.4},mechanisms=PLAIN AMQPLAIN,locales=en_US),null,""}
1257461452681: conn#74 ch#0 -> {#method<connection.start-ok>(client-properties={},mechanism=PLAIN,response=guestguest,locale=en_US),null,""}
1257461452682: conn#74 ch#0 <- {#method<connection.tune>(channel-max=0,frame-max=131072,heartbeat=0),null,""}
1257461452682: conn#74 ch#0 -> {#method<connection.tune-ok>(channel-max=0,frame-max=131072,heartbeat=0),null,""}
1257461452683: conn#74 ch#0 -> {#method<connection.open>(virtual-host=/,capabilities=,insist=true),null,""}
1257461452684: conn#74 ch#0 <- {#method<connection.open-ok>(known-hosts=akalend.local:5672),null,""}
1257461452684: conn#74 ch#1 -> {#method<channel.open>(out-of-band=),null,""}
1257461452684: conn#74 ch#1 <- {#method<channel.open-ok>(),null,""}
- 最初の列-タイムスタンプ
- 2番目:論理接続番号
- 3つ目はチャンネルの名声です。 1つのソケットで複数の論理チャネルを開くことができます。
- 4番目:サイン
-> AMQP
<- AMQP
- 次に行く:
#method<channel.open-ok> - open-ok { (), , }
(...) -
#contentHeader - basic
#method<channel.open-ok> - open-ok { (), , }
(...) -
#contentHeader - basic