rabbitmq構成
8899 ワード
プロジェクトで使われているのは、きっと使いやすいので、誰が使っているか知っています.
RabbitMQはポピュラーなオープンソースメッセージキューシステムであり、AMQP(Advanced Message Queue Protocol)の標準実装であり、erlang言語で開発されている.RabbitMQは、優れたパフォーマンスと時効性を備え、クラスタと負荷の導入を非常にサポートし、大規模な分散システムで使用するのに適していると言われています.具体的な特性は検証中であり、検証されています.プロジェクトの必要に応じてRabbitMQをインストールして構成し、サーバオペレーティングシステムはCentOS 7であり、サーバは仮想マシンである.
具体的な手順は次のとおりです.
1依存ファイルのインストール:
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
2.Erlangインストール構成
インストールパッケージ、アドレスのダウンロードhttp://www.erlang.org/downloadsああ、私が選んだのはotp_src_18.3.tar.gz.erlangについて理解する必要があります.
ファイルを解凍します.
インストールパスのコンパイルコードを設定するには、次の手順に従います.
コンパイルの結果:
次に、Erlang環境変数、vi/etc/profileファイルを構成し、次の環境変数を追加します.
source /etc/profileファイルを有効にする
完了したら/opt/erlangに入って実行結果を表示します
以上のメッセージが表示されると、インストールが完了したことを示します.次に‘halt().’を入力して終了すればよい.
Erlangのインストール中に、システムに適切なパッケージが欠けているため、どのパッケージが欠けているかを直接yumインストールすればよいという問題が発生する可能性があります.
3.RabbitMqのダウンロードインストール
ファイルの解凍
解凍後フォルダ/optに入ると、複数のフォルダrabbitmq-server-generic-unix-3.5.7が見つかり、rabbitmqと名前を変更して記憶します.
次にrabbitmq環境変数、vi/etc/profileファイルを構成し、次の環境変数を追加します.
source /etc/profileファイルを有効にする
4.RabbitMQサービス起動閉鎖
以上でRabbitMqのインストールが完了しましたが、どうやってサービスを開始しますか?
サービスの開始:
サービスステータスの表示:
サービスを終了するには、次の手順に従います.
4.Webプラグインの構成
まずディレクトリを作成します.そうしないと、エラーが発生する可能性があります.
次にプラグインを有効にします.
linuxポート15672のWeb管理の構成 5672 AMQPポート
/opt/rabbitmq/etc/rabbitmq 下にrabbitmq.config.exampleファイルをコピーします. rabbitmq.config ,rabbitmq.configで構成可能 {tcp_listeners, [5672]},
そしてアクセスhttp://localhost:15672または、仮想マシンip:15672でもよい
デフォルトユーザーguestパスワードguest
5.リモートアクセス構成
デフォルトのWebページではアクセスが許可されていません.ユーザーを追加して権限を変更する必要があります.コードは次のとおりです.
ユーザーの追加:rabbitmqctl add_user hxb hxb
権限の追加:rabbitmqctl set_permissions -p "/" hxb ".*"".*"".*"
ユーザーロールrabbitmqctlの変更 set_user_tags hxb administrator
その後、リモートアクセスが可能になり、ユーザー権限などの情報を直接構成できます.
6.rabbitmq共通コマンド
./rabbitmqctl status ステータスの表示
./rabbitmq-server -detached サーバの起動
./rabbitmqctl stop サービスクローズ
./rabbitmq-server & サーバー起動とWebプラグイン起動
./rabbitmq-plugins enable rabbitmq_management Webプラグインの起動
add_user ログインユーザー、パスワードの追加
delete_user
change_password
list_users
add_vhost
delete_vhost
list_vhostsset_permissions [-p ]
clear_permissions [-p ]
list_permissions [-p ]
list_user_permissions
list_queues [-p ] [ ...]
list_exchanges [-p ] [ ...]
list_bindings [-p ]
list_connections [ ...]
7クラスタの構成
(1)Erlang Cookieファイル:$home/.erlang.cookie 見えなかったらどうぞ
いずれかのクッキーファイルまたはコンテンツをクラスタの他のマシンに置き換えます.最後に、ファイル権限が400であることを確認します. 3台のマシンのクッキーが同じであることを保証します
rabbitmqを閉じてクッキーを他のマシンにコピー...
クッキー同期完了後に起動 detachedで起動
(2) 各ノードのhostsファイルを構成し、ノード間のホスト名が相互に解析できるようにします.
192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
(3)rabbitmqクラスタの自動構成:
rabbitmqのデフォルト構成スクリプトは インストールディレクトリの下のたとえば私のインストールディレクトリは/opt/rabbitmqです ,スクリプトパスは/opt/rabbitmq/etc/rabbitmq/rabbitmq.confです
このファイルが存在しない場合は、ディレクトリの下にあるrabbitmq.config.exampleファイルをコピーし、名前を変更します.
追加
[
...
{rabbit, [
...
{cluster_nodes, ['rabbit@node1', 'rabbit@node2', 'rabbit@node3']},
...
]},
...
].
各rabbitmqノードをそれぞれ起動
rabbitmq -detached
rabbitmqは自動的にクラスタを構成して、ページで実験して使いやすいかどうか、使いにくいなら
手動で追加すると、
Node 2ノードをRAMタイプノードとしてnode 1に追加
node 3ノードをdiscタイプノードとしてnode 1に追加
[root@n3 ~]#rabbitmq stop_app [root@n3 ~]#rabbitmqctl reset [root@n3 ~]#rabbitmqctl join_cluster rabbit@n1 [root@n3 ~]#rabbitmqctl start_app (rabbitmqクラスタノードにはdiscとramの2種類があり、1つのクラスタには少なくとも1つのdiscタイプのノードが必要であり、デフォルトでdiscに追加することを指定しない)
注意事項:
1) 各ノードのerlang Cookieは同じで、起動サーバに-setcookieパラメータを追加して同じパラメータを設定することができます. ホームディレクトリの下に同じ.erlang.cookieファイルを設定することもできます.
2) ノード間で相互に解析できるはずです./etc/hostsファイルを変更することで実現できます.
RabbitMQはポピュラーなオープンソースメッセージキューシステムであり、AMQP(Advanced Message Queue Protocol)の標準実装であり、erlang言語で開発されている.RabbitMQは、優れたパフォーマンスと時効性を備え、クラスタと負荷の導入を非常にサポートし、大規模な分散システムで使用するのに適していると言われています.具体的な特性は検証中であり、検証されています.プロジェクトの必要に応じてRabbitMQをインストールして構成し、サーバオペレーティングシステムはCentOS 7であり、サーバは仮想マシンである.
具体的な手順は次のとおりです.
1依存ファイルのインストール:
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
2.Erlangインストール構成
インストールパッケージ、アドレスのダウンロードhttp://www.erlang.org/downloadsああ、私が選んだのはotp_src_18.3.tar.gz.erlangについて理解する必要があります.
ファイルを解凍します.
[root@iZ25e3bt9a6Z rabbitmq]# tar -xzvf otp_src_18.3.tar.gz
[root@iZ25e3bt9a6Z rabbitmq]# cd otp_src_18.3/
インストールパスのコンパイルコードを設定するには、次の手順に従います.
[root@iZ25e3bt9a6Z otp_src_18.3]# ./configure --prefix=/opt/erlang
コンパイルの結果:
[root@iZ25e3bt9a6Z otp_src_18.3]# make && make install
次に、Erlang環境変数、vi/etc/profileファイルを構成し、次の環境変数を追加します.
#set erlang environment
export PATH=$PATH:/opt/erlang/bin
source /etc/profileファイルを有効にする
完了したら/opt/erlangに入って実行結果を表示します
[root@iZ25e3bt9a6Z rabbitmq]# cd /opt/erlang/
[root@iZ25e3bt9a6Z erlang]# erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1>
以上のメッセージが表示されると、インストールが完了したことを示します.次に‘halt().’を入力して終了すればよい.
Erlangのインストール中に、システムに適切なパッケージが欠けているため、どのパッケージが欠けているかを直接yumインストールすればよいという問題が発生する可能性があります.
3.RabbitMqのダウンロードインストール
[root@iZ25e3bt9a6Z rabbitmq]# weget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.7/rabbitmq-server-generic-unix-3.5.7.tar.xz
ファイルの解凍
[root@iZ25e3bt9a6Z rabbitmq]# xz -d rabbitmq-server-generic-unix-3.5.7.tar.xz
[root@iZ25e3bt9a6Z rabbitmq]# tar -xvf rabbitmq-server-generic-unix-3.5.7.tar -C /opt
解凍後フォルダ/optに入ると、複数のフォルダrabbitmq-server-generic-unix-3.5.7が見つかり、rabbitmqと名前を変更して記憶します.
次にrabbitmq環境変数、vi/etc/profileファイルを構成し、次の環境変数を追加します.
#set rabbitmq environment
export PATH=$PATH:/opt/rabbitmq/sbin
source /etc/profileファイルを有効にする
4.RabbitMQサービス起動閉鎖
以上でRabbitMqのインストールが完了しましたが、どうやってサービスを開始しますか?
サービスの開始:
[root@iZ25e3bt9a6Z rabbitmq]# cd sbin/
[root@iZ25e3bt9a6Z sbin]# ./rabbitmq-server -detached
サービスステータスの表示:
[root@iZ25e3bt9a6Z sbin]# ./rabbitmqctl status
Status of node rabbit@iZ25e3bt9a6Z ...
[{pid,11849},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.1"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.1"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.1"},
{webmachine,"webmachine","1.10.3"},
{amqp_client,"RabbitMQ AMQP Client","3.6.1"},
{mochiweb,"MochiMedia Web Server","2.13.0"},
{syntax_tools,"Syntax tools","1.7"},
{ssl,"Erlang/OTP SSL application","7.3"},
{public_key,"Public key infrastructure","1.1.1"},
{asn1,"The Erlang ASN1 compiler version 4.0.2","4.0.2"},
{crypto,"CRYPTO","3.6.3"},
{compiler,"ERTS CXC 138 10","6.0.3"},
{inets,"INETS CXC 138 49","6.2"},
{rabbit,"RabbitMQ","3.6.1"},
{mnesia,"MNESIA CXC 138 12","4.13.3"},
{rabbit_common,[],"3.6.1"},
{xmerl,"XML parser","1.3.10"},
{os_mon,"CPO CXC 138 46","2.4"},
{ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
{sasl,"SASL CXC 138 11","2.7"},
{stdlib,"ERTS CXC 138 10","2.8"},
{kernel,"ERTS CXC 138 10","4.2"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:64] [hipe] [kernel-poll:true]
"},
{memory,
[{total,64111264},
{connection_readers,0},
{connection_writers,0},
{connection_channels,0},
{connection_other,2808},
{queue_procs,2808},
{queue_slave_procs,0},
{plugins,367288},
{other_proc,19041296},
{mnesia,61720},
{mgmt_db,158696},
{msg_index,47120},
{other_ets,1372440},
{binary,128216},
{code,27368230},
{atom,992409},
{other_system,14568233}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,6556241100},
{disk_free_limit,50000000},
{disk_free,37431123968},
{file_descriptors,
[{total_limit,65435},
{total_used,2},
{sockets_limit,58889},
{sockets_used,0}]},
{processes,[{limit,1048576},{used,204}]},
{run_queue,0},
{uptime,412681},
{kernel,{net_ticktime,60}}]
サービスを終了するには、次の手順に従います.
[root@iZ25e3bt9a6Z sbin]# ./rabbitmqctl stop
Stopping and halting node rabbit@iZ25e3bt9a6Z ...
4.Webプラグインの構成
まずディレクトリを作成します.そうしないと、エラーが発生する可能性があります.
mkdir /etc/rabbitmq
次にプラグインを有効にします.
./rabbitmq-plugins enable rabbitmq_management
linuxポート15672のWeb管理の構成 5672 AMQPポート
/opt/rabbitmq/etc/rabbitmq 下にrabbitmq.config.exampleファイルをコピーします. rabbitmq.config ,rabbitmq.configで構成可能 {tcp_listeners, [5672]},
そしてアクセスhttp://localhost:15672または、仮想マシンip:15672でもよい
デフォルトユーザーguestパスワードguest
5.リモートアクセス構成
デフォルトのWebページではアクセスが許可されていません.ユーザーを追加して権限を変更する必要があります.コードは次のとおりです.
ユーザーの追加:rabbitmqctl add_user hxb hxb
権限の追加:rabbitmqctl set_permissions -p "/" hxb ".*"".*"".*"
ユーザーロールrabbitmqctlの変更 set_user_tags hxb administrator
その後、リモートアクセスが可能になり、ユーザー権限などの情報を直接構成できます.
6.rabbitmq共通コマンド
./rabbitmqctl status ステータスの表示
./rabbitmq-server -detached サーバの起動
./rabbitmqctl stop サービスクローズ
./rabbitmq-server & サーバー起動とWebプラグイン起動
./rabbitmq-plugins enable rabbitmq_management Webプラグインの起動
add_user ログインユーザー、パスワードの追加
delete_user
change_password
list_users
add_vhost
delete_vhost
list_vhostsset_permissions [-p ]
clear_permissions [-p ]
list_permissions [-p ]
list_user_permissions
list_queues [-p ] [ ...]
list_exchanges [-p ] [ ...]
list_bindings [-p ]
list_connections [ ...]
7クラスタの構成
(1)Erlang Cookieファイル:$home/.erlang.cookie 見えなかったらどうぞ
[root@n1 ~]# ll -a
いずれかのクッキーファイルまたはコンテンツをクラスタの他のマシンに置き換えます.最後に、ファイル権限が400であることを確認します. 3台のマシンのクッキーが同じであることを保証します
[root@n1 ~]# cat /var/lib/rabbitmq/.erlang.cookie
YZCUPNLBNOMPTDCUALZC
rabbitmqを閉じてクッキーを他のマシンにコピー...
[root@n3~]# rabbitmqctl stop
[root@n3~]# echo YZCUPNLBNOMPTDCUALZC > /var/lib/rabbitmq/.erlang.cookie
[root@n2~]# rabbitmqctl stop
[root@n2~]# echo YZCUPNLBNOMPTDCUALZC > /var/lib/rabbitmq/.erlang.cookie
クッキー同期完了後に起動 detachedで起動
(2) 各ノードのhostsファイルを構成し、ノード間のホスト名が相互に解析できるようにします.
192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
(3)rabbitmqクラスタの自動構成:
rabbitmqのデフォルト構成スクリプトは インストールディレクトリの下のたとえば私のインストールディレクトリは/opt/rabbitmqです ,スクリプトパスは/opt/rabbitmq/etc/rabbitmq/rabbitmq.confです
このファイルが存在しない場合は、ディレクトリの下にあるrabbitmq.config.exampleファイルをコピーし、名前を変更します.
追加
[
...
{rabbit, [
...
{cluster_nodes, ['rabbit@node1', 'rabbit@node2', 'rabbit@node3']},
...
]},
...
].
各rabbitmqノードをそれぞれ起動
rabbitmq -detached
rabbitmqは自動的にクラスタを構成して、ページで実験して使いやすいかどうか、使いにくいなら
手動で追加すると、
Node 2ノードをRAMタイプノードとしてnode 1に追加
[root@n2 ~]#rabbitmqctl stop_app
[root@n2 ~]#rabbitmqctl reset
[root@n2 ~]#rabbitmqctl join_cluster rabbit@n1 --ram
[root@n2 ~]#rabbitmqctl start_app
node 3ノードをdiscタイプノードとしてnode 1に追加
[root@n3 ~]#rabbitmq stop_app [root@n3 ~]#rabbitmqctl reset [root@n3 ~]#rabbitmqctl join_cluster rabbit@n1 [root@n3 ~]#rabbitmqctl start_app (rabbitmqクラスタノードにはdiscとramの2種類があり、1つのクラスタには少なくとも1つのdiscタイプのノードが必要であり、デフォルトでdiscに追加することを指定しない)
注意事項:
1) 各ノードのerlang Cookieは同じで、起動サーバに-setcookieパラメータを追加して同じパラメータを設定することができます. ホームディレクトリの下に同じ.erlang.cookieファイルを設定することもできます.
2) ノード間で相互に解析できるはずです./etc/hostsファイルを変更することで実現できます.