RabbitMQのは、高可用性クラスタリングモードをミラーリング

、RabbitMQの3つのモードがありますが、クラスタモデルは2種類あります。

シングルモード:唯一のスタンドアロン動作のRabbitMQの、任意のクラスタなし

ノーマルモード:一例として、二つの点(rabbit01、rabbit02)にデフォルトのクラスタモード。キューは、メッセージ・エンティティは、2つのノードが同じデータを持つノードrabbit01、rabbit01とrabbit02のいずれかに存在します。消費者ノード2から、消費者が、一時rabbit01、rabbit02間のメッセージ送信をRabbitMQの場合場合rabbit01にメッセージキューノードは、エンティティAが除去され、メッセージが消費者を経由してBに送信されます。したがって、消費者は、メッセージがかかり、そこからノードの各々に接続されなければなりません。すなわち、同一のための論理的なキューは、物理的なキューに複数のノードを作成します。そうでなければ、消費者あるいはrabbit01 rabbit02、rabbit01の総輸出は、ボトルネックを作成するかどうか。rabbit01ノード故障、rabbit02ノードがメッセージ・エンティティrabbit01ノードに注意しなければならないときに消費していません。失われたように、それはメッセージを生成し、永続的でない場合は、あなたがメッセージの永続性を作る場合は、それが消費される前にrabbit01ノードの回復を待たなければなりません

ミラーモード:ノーマルモードベースのクラスタ、あなたが内部のポリシーでミラー戦略を追加することができます。HAソリューションの属するミラーキューキューを作成する必要があります。モデルは通常モードで問題を解決し、根本的な違いは、クライアントがデータを取得する際のエンティティが自動的にではなく、一時的なプルよりも、ミラーノード間でメッセージを同期することです。もちろん、欠点は、その劣化のシステム性能、書き込み大量のメッセージで、クラスタ内のネットワーク帯域幅が大幅に消費されます。

第二に、ノードタイプ:

1.RAMノード
のメモリに保存されているメモリノード、すべてのキュー、スイッチ、結合、バーチャルホストのユーザー権限およびメタデータには、switch文のキューとより便利にすることができます。
2.ディスクノード
ディスク、シングルノードシステムに格納されたメタデータは、ちょうどディスクノードのタイプ、再始動RabbitMQのを防止する、構成情報システムの損失を実行すると

三つは、Erlangのクッキー
Erlangのクッキーは、そのため、同じクッキー、異なるノード間の異なるノード間で同じクッキー、クラスタデプロイメント時の通信は、あなたが別のノードにデータをコピーする必要があり、その共有を確保することです。

第四に、インストールサービス

1.安装erlang
# wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm
# rpm -ivh erlang-18.1-1.el6.x86_64.rpm 
 确认erlang安装成功
# erl
2.安装rabbitmq-server
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_12/rabbitmq-server-3.6.12-1.el6.noarch.rpm
# yum install -y socat
# rpm -ivh rabbitmq-server-3.6.12-1.el6.noarch.rpm
4.安装插件管理 【http://ip:55672】
# rabbitmq-plugins enable rabbitmq_management
5.启动服务
# rabbitmq-server -deched

V.クラスタのセットアップ
1.コピーし、それらをこのクッキーに基づいて、ユニファイドコミュニケーションクラスターを認定されているので、1 .eralang.cookie下のファイルは、他のノードのウサギにカタログ・ノードを示します。
ここに画像を挿入説明
2. [設定コマンド

主服务节点配置命令
rabbitmqctl stop_app 
rabbitmqctl reset
rabbitmqctl start_app

这个是用来在node1上执行的,这个也可以不执行,直接在节点服务器执行下边的脚本,不过得保证这个rabbitmq服务是正常启动的.

节点服务配置命令
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@node1
rabbitmqctl start_app

和主服务配置脚本的唯一区别是多了第三行的内容,其中--ram指的是作为内存节点,之前已经讲述了内存节点和磁盘节点的优缺点,要是想做为磁盘节点的话,就去掉--ram这个参数了,把第3行写成这样就好了
rabbitmqctl join_cluster  rabbit@node1
若执行这条命令,则node2将成为磁盘节点加入集群
PS:只要在节点列表里包含了本身,它就成为一个磁盘节点。在RabbitMQ集群里,必须至少有一个磁盘节点存在

先执行主节点上的命令,等待执行完成之后再执行服务节点的脚本,顺序不要错了哦~

执行完之后分别在每台机器上查看节点状态
rabbitmqctl cluster_status

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
これまでのところ、一般的なパターンが正常にクラスタを展開されています。

VIキューミラー
従来のトランキングモードに基づいて画像キュー

追加/更新Aポリシーの左端の下の下> -ポリシーオプションの>右側-管理者メニューで1.をクリック
埋めるために彼らのニーズに応じて、図の内容によると2.
あなたはまだしていて、ポリシーを追加するポリシーを追加します。3.をクリックしあなたはミラーのキューを設定することができます前に。一般的なクラスタを構成する
ここに画像を挿入説明
のは、効果を確認するために、キューキューを追加してみましょうが、ここではテストの結果、他の最初記入しない
ここに画像を挿入説明
オンラインが存在しないこと、=このすべてをノート赤いボックスのX-HA-ポリシーを。これは、コピーすることはありませんが、私がテストしたときのように複製することができ、少なくともキューキューは、最初にそれを追加し、である
あなたが、ここでエッジに追加するときにノード・オプションがどのノードのノード上でキューを入れて指定することですしかし、ミラーを作成する際に必要はありません

ここでは、キューにあるオハイオ州のHAインターフェイスポーリングラムRabbitMQの必要なソフトウェアを使用して、高可用性を実現するために、ここでは2つのノード(IP:5672)のクラスタ説明をミラーリングされているバックアップノードのノードとしてディスクは通常、生産もではありませんない消費。

七、一般的に使用されるコマンド

1.用户管理
(1)新增用户
rabbitmqctl add_user 用户名 密码
(2)删除用户
rabbitmqctl delete_user 用户名
(3)修改用户的密码
rabbitmqctl change_password 用户名  新密码
(4)查看当前用户列表
rabbitmqctl list_users
2.用户角色
(1)超级管理员: administrator
(2)监控者: monitoring
(3)策略制定者: policymaker
(4)普通管理者 management
(5)其他
设置用户角色的命令为:
rabbitmqctl set_user_tags 用户名  角色(上述五种角色 administrator monitoring policymaker management)
也可以给同一用户设置多个角色,例如
rabbitmqctl set_user_tags user01  monitoring policymaker
3.用户权限
用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限,配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向 exchange发送消息以及queue和exchange的绑定操作
(1)设置用户权限
rabbitmqctl set_permissions -p vhostpath user confp writep readp
(2) 查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath]
(3) 查看指定用户的权限信息
rabbitmqctl list_user_permissions User
(4) 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User
rabbitmqctl set_permissions -p / admin ‘.’ '.’ ‘.*’

おすすめ

転載: blog.csdn.net/zhutongcloud/article/details/93074158