# Bash ##### curl ```shell curl -u login:pass -i -H "content-type:application/json" -X POST http://localhost:15672/api/exchanges/%2Fvhost/exchange/publish \ -d'{"properties":{},"routing_key":"","payload":"you message","payload_encoding":"string"}' ``` ##### rabbitmqadmin `rabbitmqadmin` uses HTTP API authentication mechanism (basic HTTP authentication). - [Command Line Tools](https://rabbitmq.com/cli.html) - [Management Command Line Tool](https://rabbitmq.com/management-cli.html) Install ```bash # Install the dependency yum install python3 # Download the script from the RabbitMQ Server wget http://:15672/cli/rabbitmqadmin # chmod 0755 rabbitmqadmin mv rabbitmqadmin /usr/local/bin rabbitmqadmin -h # Verify the connection via HTTP API rabbitmqadmin -H -u -p list vhosts ``` Basic Operation ```bash ## 在其他 Linux 主機上測試 # 宣告 queue rabbitmqadmin -H -u -p -V declare queue name=my-testq durable=true # 發佈訊息 rabbitmqadmin -H -u -p -V publish exchange=amq.default routing_key=my-testq payload="This is Alang" # 接收訊息 rabbitmqadmin -H -u -p -V get queue=my-testq ackmode=ack_requeue_false # 接收訊息, 格式為 tsv rabbitmqadmin -H -u -p -V -f tsv get queue=my-testq ackmode=ack_requeue_false # 一次接收 5 訊息 rabbitmqadmin -H -u -p -V get queue=my-testq count=5 ackmode=ack_requeue_false ``` ```shell while read -r line; do echo $line | rabbitmqadmin publish exchange=amq.default routing_key=my_queue ; done < messages rabbitmqadmin publish exchange=amq.default routing_key=test payload="hello, world" # With parallel cat messages | parallel -j 100 \ ./rabbitmqadmin -H $RABBITMQ_HOST \ -u $RABBITMQ_USERNAME \ -p $RABBITMQ_PASSWORD \ publish exchange=amq.default \ routing_key=myqueue \ payload="{}" ```