RabbitMQを使用するための調査をしたので、まとめを記載します。
日本語の情報がかなり少ないけど、あまり使われていないのでしょうか…
テスト環境としてvagrantを利用します。
環境
- mac
- vagrant1.7.2(cent os)
記事履歴
- 投稿:2015/04/14
- 最終更新:2015/04/15
Erlang導入
// wget wget https://www.rabbitmq.com/releases/erlang/erlang-17.4-1.el6.x86_64.rpm // install erlang sudo rpm -ivh erlang-17.4-1.el6.x86_64.rpm
RabbitMQ導入
// wget wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-3.5.1-1.noarch.rpm // install RabbitMQ sudo rpm -ivh rabbitmq-server-3.5.1-1.noarch.rpm
chkconfig(サービス自動起動)の設定とサーバーの起動
RabbitMQ serverはパッケージとしてインストールされているので、デーモンとして起動されません。
なので、システムをブートした時にデフォルトでデーモンとして開始するために、以下のように設定をします。
// chkconfigの設定(自動起動) sudo chkconfig rabbitmq-server on // 状態を確認 chkconfig --list rabbitmq-server rabbitmq-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off // サーバーを起動 sudo /sbin/service rabbitmq-server start Starting rabbitmq-server: SUCCESS rabbitmq-server.
Note: 上記の場合、RabbitMQはシステムユーザーrabbitmqとして動作している。
設定ファイルを変更する場合は、root、もしくはrabbitmqになって変更する必要があります。
動作確認
// ステータス確認 sudo rabbitmqctl status # sudo /sbin/service rabbitmq-server statusと同じ [{pid,9967}, {running_applications,[{rabbit,"RabbitMQ","3.5.1"}, {mnesia,"MNESIA CXC 138 12","4.12.4"}, {os_mon,"CPO CXC 138 46","2.3"}, {xmerl,"XML parser","1.3.7"}, {sasl,"SASL CXC 138 11","2.4.1"}, {stdlib,"ERTS CXC 138 10","2.3"}, {kernel,"ERTS CXC 138 10","3.1"}]}, {os,{unix,linux}}, {erlang_version,"Erlang/OTP 17 [erts-6.3] [source] [64-bit] [async-threads:30] [kernel-poll:true]\n"}, {memory,[{total,34863768}, {connection_readers,0}, {connection_writers,0}, {connection_channels,0}, {connection_other,2632}, {queue_procs,2632}, {queue_slave_procs,0}, {plugins,0}, {other_proc,13375752}, {mnesia,57984}, {mgmt_db,0}, {msg_index,45136}, {other_ets,732320}, {binary,13416}, {code,16576864}, {atom,602729}, {other_system,3454303}]}, {alarms,[]}, {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,192287539}, {disk_free_limit,50000000}, {disk_free,194548305920}, {file_descriptors,[{total_limit,924}, {total_used,3}, {sockets_limit,829}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,123}]}, {run_queue,0}, {uptime,1244}]
ログ
// フォルダ移動 cd /var/log/rabbitmq tail -f rabbit@localhost.log msg_store_persistent: using rabbit_msg_store_ets_index to provide index =WARNING REPORT==== 14-Apr-2015::02:00:02 === msg_store_persistent: rebuilding indices from scratch =INFO REPORT==== 14-Apr-2015::02:00:02 === started TCP Listener on [::]:5672 =INFO REPORT==== 14-Apr-2015::02:00:02 === Server startup complete; 0 plugins started.
Limits
Limitの数(スレッド数の上限)は、初期設定では少なすぎるので変更するべきです。
本番環境なら少なくとも65536にすることを薦めます。ただし、開発環境なら4096で十分です。
// プロセス数 ulimit -n 1024 // 変更(一時的に更新) ulimit -S -n 4096 // プロセス数 ulimit -n 4096
Limitの変更方法は環境や状況に応じて異なります。ここが参考になります。
以上。続きます。
0 件のコメント:
コメントを投稿