0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rabbitmqadmin コマンドでの RabbitMQ の操作

Posted at

rabbitmqadmin コマンドで RabbitMQ のキューにメッセージを登録し、メッセージを取得する。

rabbitmqadmin のインストール

RabbitMQ のインストール、起動

sudo yum install rabbitmq-server
sudo systemctl start rabbitmq-server

rabbitmqadmin を有効化

sudo yum install rabbitmq-plugins enable rabbitmq_management

~/bin に rabbitmqadmin をインストール

mkdir ~/bin
cd ~/bin
wget http://localhost:15672/cli/rabbitmqadmin
chmod a+x rabbitmqadmin
export PATH="${PATH}:~/bin"

rabbitmqadmin での RabbitMQ の操作

キューの作成

以下で キュー名=test_queue のキューを作成。

rabbitmqadmin declare queue name=test_queue

キューの一覧

rabbitmqadmin list queues

+------------+----------+
|    name    | messages |
+------------+----------+
| test_queue | 0        |
+------------+----------+

メッセージの登録

キュー名=test_queue のキューに "message_01" ... "mesage_05" を登録。

rabbitmqadmin publish routing_key=test_queue payload=message_01
rabbitmqadmin publish routing_key=test_queue payload=message_02
rabbitmqadmin publish routing_key=test_queue payload=message_03
rabbitmqadmin publish routing_key=test_queue payload=message_04
rabbitmqadmin publish routing_key=test_queue payload=message_05
rabbitmqadmin list queues

+------------+----------+
|    name    | messages |
+------------+----------+
| test_queue | 5        |
+------------+----------+

メッセージの取得

get でメッセージを取得。

メッセージの取得
rabbitmqadmin get queue=test_queue count=2

+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count |  payload   | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+
| test_queue  |          | 4             | message_01 | 10            | string           |            | False       |
| test_queue  |          | 3             | message_02 | 10            | string           |            | False       |
+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+

ackmode=ack_requeue_true がデフォルトのため、キューからメッセージを取得してもメッセージ数が減少しない。

確認
rabbitmqadmin list queues

+------------+----------+
|    name    | messages |
+------------+----------+
| test_queue | 5        |
+------------+----------+

ackmode=ack_requeue_false を指定すると、キューからメッセージが削除される。

メッセージの取得
rabbitmqadmin get queue=test_queue count=1 ackmode=ack_requeue_false
+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count |  payload   | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+
| test_queue  |          | 4             | message_01 | 10            | string           |            | True        |
+-------------+----------+---------------+------------+---------------+------------------+------------+-------------+
確認
rabbitmqadmin list queues

+------------+----------+
|    name    | messages |
+------------+----------+
| test_queue | 4        |
+------------+----------+
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?