.rabbitmqをインストールします。
説明:アーランとRabbitMQのバージョンが一致する必要がある、あなたは、公式サイトの対応関係を表示することができます
Erlangの環境をインストールします。1.
yumをインストールアーラン
インストールが成功したかどうかを確認するためにErlangの-version
RabbitMQのをインストールします。2.
yumをRabbitMQのサーバーをインストールします
4.スタートからの起動を設定します
上のchkconfigのRabbitMQのサーバ
5.設定されたプロファイル
CDの/ etc / RabbitMQの
CP /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.exampleの/ etc / RabbitMQの/
MV rabbitmq.config.example rabbitmq.config
構成例およびリネームRabbitMQのに設定
設定ファイルのリモートアクセスを開く6.
我々/etc/rabbitmq/rabbitmq.config
開いた構成{loopback_users、[]}、エンドコンマを除去
Webインターフェイス管理ツールをオンにします7.
RabbitMQの-プラグインはrabbitmq_managementを有効にします
8.ファイアウォールのポート15672オープン
またはファイアウォールをオフにします
恒久的に開いているポート:ファイアウォール-CMD --permanent --add-ポート= 15672 / TCP
開いているポートをリロードします:ファイアウォール-CMD --reload
ファイアウォール-CMD --state:のステータスを確認
ファイアウォール-CMD --list-ポート:オープンポートを見ます
centos7はsystemctlファイアウォール管理を使用しました
#Systemctlは、firewalld#スタートを開始します
#Systemctlはfirewalld#ブートを有効
#Systemctl停止firewalldの#の近く
#Systemctl無効firewalld#ブートをキャンセル
9.一般的に使用されるコマンド
//開始
サービスのRabbitMQサーバの起動
//チェック状態
サービスのRabbitMQサーバのステータス
//閉じます
サービスのRabbitMQサーバの停止
II。ユーザーを作成します。
1.ログ管理ページ
http://101ycy.com:15672/ ゲストのゲスト
2.admin]タブは、管理ユーザー、管理者の役割を追加します
3.ロールタイプ
スーパー管理者:管理者は、ユーザーのすべての情報を表示するには、管理コンソールのログを記録することができ、ポリシー(方針)を動作させます
監視:監視、管理コンソールは、(等プロセスの数、メモリの使用状況、ディスク使用状況、)MQノード情報を表示するためにログインすることができ
政策立案者:政策立案者は、ポリシー管理のための管理コンソールをログに記録することができますが、MQノード情報を表示することはできません
ゼネラルマネージャー:管理は、唯一の管理コンソールにログインすることができ、ノード情報を見ることができない、ポリシーを管理することができません
その他:多くの場合、それは生産者と消費者で、管理コンソールをログに記録することはできません
III。仮想ホストを作成します。
1.定義:ライブラリデータベースの同等
2.意味:仮想ホストは、スイッチ、キューとバインディングのグループを保持し、ユーザーがRabbitMQの中で右のコントロール仮想ホストの粒子サイズを行うことができます
IV。ワーク6機種投入
1.シンプルなキュー
スイッチは、キューに直接送信され、指定されていません
2.ワークキュー
シンプルなキューを使用した基本的な、複数のキューの消費者支出、デフォルトのポーリング分布、あなたが設定することができ、メッセージを送信します、basicQos(perfetch = 1)、消費者の手動応答ACKを、プロセスが速く、我々はより多くのニュースを受け取る確保することができます
3.ルーティングモード(方向スイッチを指示するスイッチ)
スイッチおよびキューをバインドするために、キーをルーティングキーをルーティングセット
そしてキーをルーティング搬送方向スイッチへのメッセージは、対応するキューに配信されます
4.モデル/ブロードキャストモード(セクタファンアウトスイッチのスイッチ)をサブスクライブパブリッシュ
そして、スイッチキューの複数のバインディング
スイッチは、バインドされたすべてのキューに配信するメッセージを送信します
ワイルドカード/テーマ(スイッチへの話題スイッチ)
同様のルーティングモードが、ルーティングキーはワイルドカードを含めることができます
#キーが一致する単語を1つまたは複数のルーティング、*ハロー、hello.word例えば、単語と一致します。*、こんにちは。#
ファイブ.rabbitmq利用シナリオ
1.非同期処理
このようなユーザ登録、送信テキストメッセージや電子メール警告として、不正防止システムコールをData Services Platformでは、非同期呼び出しがあります
長所:最終結果を待たずに呼び出し
デカップリングの適用に関する事項
障害がB-システムAおよびメッセージングには影響を与えない場合には強い依存MQキューは、持ち上げることができるとB-システムへのAからシステムデータ、
3.交通クリッピング
システム要求メッセージまずMQの多数の流入を防止し、その後消費MQメッセージの速度で
4.メッセージ配信
メッセージバッファ
VI。コンセプトノート
1.broker:メッセージキューサービスエンティティ
2.exchange:メッセージ・スイッチ、メッセージ指定されたルール、プロセスおよびメッセージ・キューとの間の関係は、結合させることができるキューは、結合したスイッチであってもよいです
3.queue:キュー、キューへのメッセージ
4.binding:バインド、バインドスイッチおよびキュールーティングルールにより、
5.routingキー:ルーティングキーは、これに応じてメッセージ配信を切り替えます
6.vhost:仮想ニュースサーバー、完全に単離されたバーチャルホストは、スイッチ、バーチャルホスト、主に異なるビジネス・モジュールを分割するために使用され、アクセス制御を行うことができる異なるキュー間で共有することができません
7.producer:プロデューサーは、メッセージを投稿しました
8.consumer:消費者の受付メッセージ
9.channel:チャネルは、通信のチャネルを開くために、セッションのためにチャンネル割り当ては、実際のTCP上の仮想コネクションであります
利用VII。死亡したスイッチ
basic.reject拒否したり、配信不能を通じて消費者はニュースをトラブルシューティングするために、ここでキューに入れられます
VIII。メッセージの確認応答を送信します
確認(確認コールバック)リターン(障害コールバック)/ callbak
1.キューやスイッチへ:実行ACK =真
2.スイッチのエラー、正しいキュー:ACK =偽の実装
実行ACKを実行するために失敗=真:3スイッチの権利、私は間違っていたキュー
4.スイッチおよびキューが間違っている:実行ACK =偽
IX。信頼できるメッセージ配信
二つのプログラム:以下の図は、ネットワークからの画像
メッセージの永続性、パフォーマンスのほとんど
メッセージ配信の遅延は、第2のチェックを行い、RPCは、メッセージを再送信に失敗しますが、メッセージのメッセージ遅延配信はちょうどより多くの保護の層よりも、失敗する可能性があります
さらに、いくつかの方法は、追加します。
一つは、トランザクションの送信方法上のトランザクション機構のRabbitMQオープン情勢に設定し、生産、およびノートの使用であるロールバック例外が発生し、それぞれの提出はリターンを結果処理サービスを待ってブロックする、大規模なパフォーマンスへの影響は、一般的に使用されていません
1.設定
持続性の設定:スイッチ、キューと永続メッセージは次のように設定されています
通常のスイッチ構成:テーマまたはルーティングモード
バックアップスイッチの設定:ブロードキャストモード(キーをルーティングすることなく、この構成)、および2つのキュー、キューとアラーム配信不能メッセージキューを結合、警告キューは、電子メール、テキストメッセージタイムリーにアラームを送信するために使用されます
バックアップスイッチを結合:通常のスイッチ構成の代替交換パラメータは、バックアップスイッチの名前を指定すると、バインドすることができ
トリガ条件:メッセージキューが適切に通常のスイッチに配信されていない場合、バックアップの交換にメッセージを送信します
バックアップスイッチは、受信:この時点でトリガーがconfirmcallbackとreturncallback、あなたは有効にする必要があります
Confirmcallback、スイッチトリガが偽の届かないキュートリガreturncallbackに達することができません
プロセス:
書き込みがMongoDBの配信切り替えに失敗した場合、MSG IDに従って、スイッチ、ライトMSG IDとRedisのを投稿する際のRedisは、メッセージ配信の失敗、その後、タイミングタスクスキャン再配信、成功した成功の兆候として記録を確認読み取ります
キューに転送に失敗した場合、メッセージは、同書をモンゴを書かれています。
0002シンプルで信頼性の高い配信:通常の配送スイッチは、バックアップスイッチを提供するために失敗した場合、またはそれは、モンゴでコールバックに戻りメッセージを確認して再配信スキャンとステータスタイマーを更新するために失敗した場合
3.信頼性の高い消費
消費者が手動応答モードを作動させ、処理が成功したbasicAck、二つのパラメータ、一意の識別子、少ない固有の識別のすべてより他のすべての使い捨てACKメッセージであります
そして、2番目のキューに再配置不能不正メールスイッチ、2つのパラメータの一意の識別子、もしかbasicReject再キューイング= falseを、スイッチに進むに失敗しました
不正メールスイッチの設定とデッドレターキュー:
プロデューサを構成することができます
次のようにイラスト:https://blog.csdn.net/Weixiaohuai/article/details/94760975から
テン.rabbitmqクラスタアーキテクチャ
1.スタンバイモード
主节点提供读写,备份节点不提供读写,在主节点产生故障或宕机时,切换到备用节点,继续提供读写服务,相互转换.
场景:并发和数据量不高情况下,也称之为warren(兔子窝)模式
2.远程模式:
多活模式,简称shovel模式,把消息进行不同数据中心的复制工作,我们可以跨地域的让两个mq集群互联,用的不多,早期的集群
3.镜像模式
mirror镜像模式,保证数据100%数据不丢失,实际工作中用的最多的,搭建简单
100%数据可靠性解决方案一般是3节点
keepalived如何配置公网IP
脑列问题
4.多活模式
依赖federation插件
下游从上游主动拉取消息