RabbitMQの使用や信頼性の高い情報源

.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插件

 

下游从上游主动拉取消息

 

发布了42 篇原创文章 · 获赞 25 · 访问量 7万+

おすすめ

転載: blog.csdn.net/qq812858143/article/details/103319739