LoginSignup
13
15

More than 5 years have passed since last update.

Rabbit MQの導入

RabbitMQを導入して非同期キューのテストでもしてみようと思い立ち、導入してみた。

前提条件

前提条件にErlangが必要なので、そこから。

ErlangのRPM取得

wget "http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/esl-erlang_15.b.3-1~fedora~beefymiracle_amd64.rpm"
wget "https://github.com/jasonmcintosh/esl-erlang-compat/blob/master/rpmbuild/RPMS/noarch/esl-erlang-compat-R14B-1.el6.noarch.rpm?raw=true"

これをyum で導入し、Erlangは終了。

 yum install esl-erlang_15.b.3-1~fedora~beefymiracle_amd64.rpm
 yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

RabbitMQ の導入

yum install http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-server-3.3.4-1.noarch.rpm

RabbitMQ の設定

ひな型のコピー

よくあるパターンとして、ひな型があるのでまずコピーして設定していく。

cp -a /usr/share/doc/rabbitmq-server-3.3.4/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

運用時にはレベルを変えたいかもしれないので、以下の内容をチェック。

{log_levels, [{connection, info}]},

はログを表していて、infoがレベル(none/error/warning/info)を表している。

ログは、/var/log/rabbitmqにある。

動作確認

JavaのClientツールを導入し、テストツールで動作確認をおこなう。

wget "http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.3.4/rabbitmq-java-client-bin-3.3.4.tar.gz"
tar zxf rabbitmq-java-client-bin-3.3.4.tar.gz

解凍したフォルダで、PerfTestを実行して確認。

./runjava.sh com.rabbitmq.examples.PerfTest
starting consumer #0
starting producer #0
time: 1.001s, sent: 4874 msg/s, received: 3028 msg/s, min/avg/max latency: 3132/81769/204803 microseconds
time: 2.001s, sent: 17897 msg/s, received: 6538 msg/s, min/avg/max latency: 216676/503751/640297 microseconds
time: 3.001s, sent: 10706 msg/s, received: 10953 msg/s, min/avg/max latency: 494052/926855/1224386 microseconds

な感じになっていればQueueは動作している。
--helpで呼び出すことで、以下のようなヘルプが得られる。

 -?,--help                  show usage
 -A,--multiAckEvery <arg>   multi ack every
 -a,--autoack               auto ack
 -b,--heartbeat <arg>       heartbeat interval
 -c,--confirm <arg>         max unconfirmed publishes
 -C,--pmessages <arg>       producer message count
 -D,--cmessages <arg>       consumer message count
 -e,--exchange <arg>        exchange name
 -f,--flag <arg>            message flag
 -h,--uri <arg>             AMQP URI
 -i,--interval <arg>        sampling interval
 -k,--routingKey <arg>      routing key
 -M,--framemax <arg>        frame max
 -m,--ptxsize <arg>         producer tx size
 -n,--ctxsize <arg>         consumer tx size
 -p,--predeclared           allow use of predeclared objects
 -Q,--globalQos <arg>       channel prefetch count
 -q,--qos <arg>             consumer prefetch count
 -r,--rate <arg>            rate limit
 -s,--size <arg>            message size
 -t,--type <arg>            exchange type
 -u,--queue <arg>           queue name
 -x,--producers <arg>       producer count
 -y,--consumers <arg>       consumer count
 -z,--time <arg>            time limit

Webでの管理ツール

/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_shovel
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_shovel_management
/etc/init.d/rabbitmq-server restart

管理ツールを有効にします。

rabbitmqctl -n rabbit@localhost add_user admin admin
rabbitmqctl -n rabbit@localhost set_permissions admin ".*" ".*" ".*"
rabbitmqctl -n rabbit@localhost set_user_tags admin administrator

上記コマンドでユーザを登録(admin/admin)にして、以下のURLでアクセス可能になります。

WS000058.JPG

13
15
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
13
15