RabbitMQの紹介、インストール、使用コマンド

目次を読む

1 RabbitMQの概要

       RabbitMQは、erlangによって開発されたAMQP(Advanced Message Queue)のオープンソース実装であり、公式ウェブサイトアドレスはhttp://www.rabbitmq.comです。メッセージブローカーとして、RabbitMQは主にメッセージの受信、保存、転送を担当します。信頼できるメッセージメカニズムと柔軟なメッセージルーティングを提供し、メッセージのクラスタリングと分散展開をサポートします。アプリケーションの分離、時間のかかるタスクキュー、およびトラフィックの削減によく使用されます。シーンを待っている風水。この一連の記事では、RabbitMQの動作メカニズム、コードド​​ライバー、およびクラスター構成を体系的に紹介します。この記事では、主に、RabbitMQのいくつかの基本的な概念、一般的に使用されるRabbitMQ制御コマンドを紹介し、最後にC#によって駆動される簡単なクリを作成します。まず、RabbitMQの基本構造を見てみましょう。

  上の画像はRabbitMQの基本的な構造です。プロデューサーとコンシューマーはどちらもRabbitMQのクライアントです。プロデューサーはメッセージの送信を担当し、コンシューマーはメッセージの消費を担当します。

次に、この図を組み合わせて、RabbitMQのいくつかの概念を理解します。

  ブローカー(サーバー):クライアント接続を受け入れ、AMQPメッセージキューとルーティング機能を実現するプロセスブローカーをRabbitMQサーバーと呼ぶことができます。

  仮想ホスト:仮想概念仮想ホストには、主にアプリケーションの権限制御と分離に使用されるいくつかのExchangeとキューが存在する可能性があります。アプリケーションAがVhostAを使用し、アプリケーションBがVhostBを使用する場合、アプリケーションAのエクスチェンジ、キュー、メッセージのみをVhostAに格納します。アプリケーションAのユーザーはVhostAにのみアクセスでき、VhostBのデータにはアクセスできません。

  Exchange:プロデューサーから送信されたメッセージを受け入れ、バインディングルールに従ってサーバーのキューにメッセージをルーティングします。ExchangeTypeは、Exchangeルーティングメッセージの動作を決定します。たとえば、RabbitMQには、Direct、Fanout、Topic、Headerの4つのExchangeTypeがあります。Exchangeルーティングルールの種類は異なります(これらについては後で詳しく説明します)。

  キュー:メッセージキューは、コンシューマが消費していないメッセージを格納するために使用されます。キューは先入れ先出しです。デフォルトでは、最初に格納されたメッセージが最初に処理されます。

  メッセージ:ヘッダーと本文で構成されるメッセージです。ヘッダーは、メッセージが永続化されるかどうか、Message Queueが受け入れるかどうか、優先順位など、プロデューサーによって追加されるさまざまな属性のコレクションです。本文は実際に送信されるデータです。コンテンツの形式はbyte []です。

  接続:RabbitMQの場合、接続は実際にはクライアントとブローカー間のTCP接続です。

  Channel:Channel。クライアントとブローカー間の接続のみが作成された後は、クライアントはメッセージを送信できません。チャネルは、接続に基づいて作成する必要があります。AMQPプロトコルでは、AMQPコマンドはチャネルを介してのみ実行できると規定されています。接続には複数のチャネルを含めることができます。TCP接続の確立と解放には非常にコストがかかるため、チャネルが必要です。

2 RabbitMQのインストール

  RabbitMQはerlang言語で開発されているため、RabbitMQをインストールする前にerlangサポートをインストールする必要があります。

1 Windowsプラットフォームのインストール

1 erlangをインストールする

  最初にerlangをダウンロードして最新バージョンを直接ダウンロードします。現在のダウンロードはOTP 21.3 Windows 64ビットバイナリファイルです。ダウンロードが完了したら、次の手順でインストールできます。

2 RabbitMQをインストールする

WindowsプラットフォームにRabbtMQを  ダウンロードします。現在のダウンロードはrabbitmq-server-3.7.14.exeです。ダウンロードが完了したら、次の手順でインストールできます。

3 Web管理プラグインをインストールする

  RabbitMQコマンドプロンプトを開き、コマンドrabbitmq-plugins enable rabbitmq_managementを実行して、Web監視プラグインのインストールを完了します。 

  インストールが完了したら、ブラウザーを開いてhttp://127.0.0.1:15672/を入力し、デフォルトのアカウント[name:guest / password:guest]を使用してログインします。インターフェースは次のとおりです。このUIプラグインを使用すると、RabbitMQ(exchange )、キューおよびその他のコンテンツ、Exchange、キュー、およびユーザーを追加、変更、および削除することもできます。

  この時点で、RabbitMQのWindowsプラットフォームのインストールは完了しています。次のように、サービスマネージャーを開きます。RabbitMQは既に正常に実行されています。

2 CentosはRabbitMQをインストールします

1 RabbitMQをインストールする

  ここでの仮想マシンシステムはCentos7で、採用されているインストール方法はyumインストールです。簡単にするために、公式のerlangとRabbitMQサーバーの自動インストールスクリプト(公式のインストールドキュメントを直接使用し、次のコードを1行ずつ実行してerlangをインストールします。そしてRabbitMQ。

コードをコピー

#Install socat 
yum install socat #Install 

erlang 
  curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash 
  yum -y install erlang 

#Install rabbitmq-server 
  curl -s https ://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash 
  yum -y install rabbitmq-server 

#Start rabbitmq service 
  systemctl start rabbitmq-server #Add 
web management plug-in 
  rabbitmq-plugins enable rabbitmq_management

コードをコピー

補足:インストールの完了後、RabbitMQ実行コマンドが特に遅い場合、またはエラーが発生した場合(rabbitmqがノードxxx @ xxxで操作を実行できません)、解決策:

  ホストを編集し、コマンドvim / etc / hostsを実行し、ローカルIP(または仮想マシンIP)を追加します

  コマンドを実行した後、ブラウザーを使用してhttp://127.0.0.1:15672/にアクセスすると、Web管理インターフェースも表示されます。上記のインストール手順でインストールされたRabbitMQはUnitファイルを生成するため、Systemdを使用してRabbitMQサービスを管理できます。

コードをコピー


  #RabbitMQ サービスを開始しますsystemctl start rabbitmq-server #RabbitMQ 
サービスを
  停止しますsystemctl stop rabbitmq-server #RabbitMQの
実行ステータスを
  表示しますsystemctl status rabbitmq-server #RabbitMQ 
サービスを
  再起動しますsystemctl restart rabbitmq-server

コードをコピー

2 RabbitMQコントロールツール

  RabbitMQの一般的な機能のほとんどは、Web管理インターフェイスを使用して実現できますが、RabbitMQアプリケーションの開閉やクラスター管理など、一部の機能はWebUIでは実現できません。RabbitMQコントロールは、RabbitMQのすべての組み込み関数を呼び出すことができるRabbitMQのコマンドライン管理ツールです。メインコマンドはrabbitmqctlです。以下は、ユーザーリストを照会するコマンドです。実行するには、sbinディレクトリに切り替える必要があることに注意してください。

  RabbitMQコントロールツールを便利に使用するには、環境変数を追加することをお勧めします。Windowsがデフォルトでインストールされている場合は、PATHに追加します:C:\ Program Files \ RabbitMQ Server \ rabbitmq_server-3.7.14 \ sbin、デフォルトでインストールされていない場合は、対応するインストールディレクトリにPATHを追加します。上記のインストール方法によると、Centosは追加の設定なしでRabbitMQコントロールツールを直接使用できます。RabbitMQコントロールツールの詳細については、RabbitMQコントロールの公式ドキュメントを参照しください

  以下は、最も一般的に使用されるいくつかのRabbitMQ制御コマンドの要約です。関心のある友人がこれらのコマンドを実行しようとする場合があります。たとえば、コマンドラインツールでコマンドrabbitmqctl add_user <username> <password>を使用して、新しいユーザーを追加します。

1基本的な制御コマンド

  基本的な制御コマンドは、主にアプリケーション、ランタイムなどの起動と停止に使用されます。

コードをコピー

#RabbitMQのとランタイム停止
  rabbitmqctlはシャットダウン
停止のerlangノード#
  rabbitmqctl停止
#イネーブルRabbitMQの
  rabbitmqctl start_app 
#ストップのRabbitMQ 
  rabbitmqctlのstop_appの
#は、ステータス表示
  rabbitmqctlステータス
#閲覧環境
  rabbitmqctl環境が
初期状態に戻す#rabbitmq、内部交換・キューがクリアされ
  rabbitmqctlリセットを

コードをコピー

2サービス状態管理

  これらのコマンドは、主に交換、チャネル、バインディング、キュー、コンシューマを表示するために使用されます。

コードをコピー


  #キュー情報に戻るlist_queues [-p <vhostpath>] [<queueinfoitem> ...] 
  #
交換情報に戻るlist_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...] 
  #
バインディング情報に戻るlist_bindings [- p <vhostpath>] [< 
  bindinginfoitem > ...] 
 リンク情報を返すlist_connections [<connectioninfoitem> ...] 
  #
現在のすべてのチャネルを返すlist_channels [<channelinfoitem> ...]    
  #
コンシューマを返すlist_consumers [-p <vhostpath >]

コードをコピー

3ユーザー管理コマンド

  これらのコマンドは、主にユーザーの追加、変更、削除、およびユーザー権限の管理に使用されます

コードをコピー

#rabbitmqの内部データベースにユーザーを追加する
  add_user <username> <password>   #ユーザーを削除
する
  delete_user <username>#
ユーザーパスワードを
  変更するchange_password <username> <newpassword> 
  #
ユーザーパスワードを消去し、ユーザーログインを禁止するclear_password <username>#
ユーザータグを設定する、ユーザーの役割を設定することです
  set_user_tags <ユーザー名> <タグ> 
#ビューのユーザリスト
  list_users #Create 
Aバーチャルホスト
  add_vhost <vhostpath> #DELETE 
Aバーチャルホスト
  delete_vhost <vhostpath>     
  #List 
バーチャルホストlist_vhosts [<vhostinfoitem> ...] #For 
Aバーチャルホストをユーザーに関連する権限を付与します
  set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
  #vhostで
のユーザーの権限をクリアclear_permissions [-p <vhostpath>] <username> #vhostで
すべてのユーザーの権限を一覧表示
  list_permissions [-p <vhostpath>]#   
ユーザーのアクセス許可を
  一覧表示しますlist_user_permissions <username>

コードをコピー

4つのクラスター管理コマンド

コードをコピー

#clusternodeはノードの名前を示し、-ramはノードがramノードとしてクラスターに参加することを示します。デフォルトでは、ノードはディスクノードとしてクラスターに参加します。ノードがクラスターに参加する前に、ノードのrabbitmqアプリケーションを停止する必要があります。つまり、最初にstop_appを実行する必要があります。
  join_cluster <clusternode> [--ram]#    
クラスター内のすべてのノードを表示します
  cluster_status 
  #
クラスター名を設定しますset_cluster_name <clustername> 
  #
クラスター名を変更しますrename_cluster_node <oldname> <newname>#
クラスター内のノードのモードを変更します、ノードは変換前です最初に停止する必要があります。また、クラスター内の唯一のディスクノードをramノードに変換できません
  change_cluster_node_type <disc | ram> 
  #
ノードをリモートで削除し、rabbitmqctl forget_cluster_node rabbit @ rabbit1#同期
ミラーキュー
  sync_queue <queuename>を削除する前にノードを停止する必要があります
  #
同期キューのキャンセルcancel_sync_queue <queuename>   
  #
キュー内のすべてのメッセージを空にするpurge_queue [-p vhost] <queuename>

コードをコピー

  ここにリストされているコマンドの多くは、クラスター制御関連のコマンドなど、この段階では使用されません。これらのコマンドの使用法については、次の章で徐々に理解していきます。

おすすめ

転載: blog.csdn.net/u014748504/article/details/108535431