B.4. Interop.Drain.cs、Interop.Spout.cs (パフォーマンス演習)
AMQ .NET サンプル Interop.Drain および Interop.Spout は、Red Hat AMQ Interconnect との対話について説明しています。この場合、メッセージブローカーはありません。代わりに、Red Hat AMQ Interconnect はクライアントプログラムが要求したアドレスを登録し、それらの間でメッセージをルーティングします。
Interop.Drain コマンドラインオプション
$ Interop.Drain.exe --help
Usage: interop.drain [OPTIONS] --address STRING
Create a connection, attach a receiver to an address, and receive messages.
Options:
--broker [amqp://guest:guest@127.0.0.1:5672] - AMQP 1.0 peer connection address
--address STRING [] - AMQP 1.0 terminus name
--timeout SECONDS [1] - time to wait for each message to be received
--forever [false] - use infinite receive timeout
--count INT [1] - receive this many messages and exit; 0 disables count based exit
--initial-credit INT [10] - receiver initial credit
--reset-credit INT [5] - reset credit to initial-credit every reset-credit messages
--quiet [false] - do not print each message's content
--help - print this message and exit
Exit codes:
0 - successfully received all messages
1 - timeout waiting for a message
2 - other error
Interop.Spout コマンドラインオプション
$ interop.spout --help
Usage: Interop.Spout [OPTIONS] --address STRING
Create a connection, attach a sender to an address, and send messages.
Options:
--broker [amqp://guest:guest@127.0.0.1:5672] - AMQP 1.0 peer connection address
--address STRING [] - AMQP 1.0 terminus name
--timeout SECONDS [0] - send for N seconds; 0 disables timeout
--durable [false] - send messages marked as durable
--count INT [1] - send this many messages and exit; 0 disables count based exit
--id STRING [guid] - message id
--replyto STRING [] - message ReplyTo address
--content STRING [] - message content
--print [false] - print each message's content
--help - print this message and exit
Exit codes:
0 - successfully received all messages
2 - other error
Interop.Spout および Interop.Drain サンプル呼び出し
1 つのウィンドウで Interop.drain を実行します。Drain は、1 つのメッセージが到達するまで待機します。
$ Interop.Drain.exe --broker amqp://10.10.2.2:5672 --forever --count 1 --address amq.topic
別のウィンドウで Interop.spout を実行します。Spout はメッセージをブローカーアドレスに送信し、終了します。
$ interop.spout --broker amqp://10.10.2.2:5672 --address amq.topic
$
これで、最初のウィンドウで drain は spout からメッセージを受信し、終了します。
$ Interop.Drain.exe --broker amqp://10.10.2.2:5672 --forever --count 1 --address amq.topic
Message(Properties=properties(message-id:9803e781-14d3-4fa7-8e39-c65e18f3e8ea:0), ApplicationProperties=, Body=
$