RabbitMQでクラスタ化せずに vhost,exchange等を移行できます。

20151124004337

RabbitMQのAPIを介して行えます。
尚、administrator権限が必要になるので、接続ユーザに予め権限付与しておきます。

# ユーザ追加
rabbitmqctl add_user "ユーザ名" "パスワード"
# administrator付与
rabbitmqctl set_user_tags "ユーザ名" administrator

エクスポート

  • definitions.jsonに出力
_src_user=
_src_pass=
_src_ip=
_src_port=

# Export
curl -s -S -u ${_src_user}:${_src_pass} 
  http://${_src_ip}:${_src_port}/api/definitions > definitions.json

インポート

  • definitions.jsonから入力
_dst_user=
_dst_pass=
_dst_ip=
_dst_port=

# Import
curl -s -S -X POST -u ${_dst_user}:${_dst_pass} 
  -H "content-type:application/json" -d "@definitions.json" 
  http://${_dst_ip}:${_dst_port}/api/definitions

簡易バックアップにも使えそうです。

元記事はこちら

RabbitMQ エクスポート/インポート