環境
server
os:centos7
|
client
os:centos7
手順
serverで実行する。
username='admin'
password='secret'
yum install -y epel-release
yum install -y rabbitmq-server
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service
rabbitmqctl add_user $username $password
rabbitmqctl set_user_tags $username administrator
rabbitmqctl set_permissions $username '.*' '.*' '.*'
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server.service
firewall-cmd --permanent --new-service=rabbitmq
firewall-cmd --permanent --service=rabbitmq --add-port=5672/tcp
firewall-cmd --permanent --new-service=rabbitmq-management
firewall-cmd --permanent --service=rabbitmq-management --add-port=15672/tcp
firewall-cmd --permanent --add-service=rabbitmq
firewall-cmd --permanent --add-service=rabbitmq-management
firewall-cmd --reload
clientで実行する。
username='admin'
password='secret'
queue='demo.queue'
server='server'
curl -o ./rabbitmqadmin http://$server:15672/cli/rabbitmqadmin
chmod -v +x ./rabbitmqadmin
cat <<__TEXT__ | tee ~/.rabbitmqadmin.conf >/dev/null
[default]
hostname = $server
username = $username
password = $password
__TEXT__
# キューを作る
./rabbitmqadmin declare queue name="$queue"
# キューにメッセージを加える
echo "msg" | ./rabbitmqadmin publish routing_key="$queue"
# メッセージ数を得る
./rabbitmqadmin list queues -f pretty_json \
| jq "
map({\"name\":.name, \"messages\":.messages}) \
| map(select(.name=\"demo.queue\"))
"
# 消さずにメッセージを得る
./rabbitmqadmin get queue="$queue" -f pretty_json
# メッセージを消す
./rabbitmqadmin purge queue name="$queue"
# キューを消す
./rabbitmqadmin delete queue name="$queue"