私は長い間春のブーツを書いていません。私はたまたま春のクラウドバスを書いていました。コンテンツには何らかの関連性があるため、AMQPの統合に関する投稿を追加します。
メッセージブローカーとAMQPの紹介
メッセージブローカーは、メッセージの検証、送信、ルーティングのためのアーキテクチャモデルです。その設計目標は、主に次のシナリオで使用されています。
AMQPは、メッセージミドルウェア用のオープン標準アプリケーションレイヤープロトコルである高度なメッセージキューイングプロトコルの略語です。 AMQPはこれらの機能を定義します。
rabbitmq
この記事で導入されるRabbitmQは、AMQPプロトコルで実装されたミドルウェア製品です。複数のオペレーティングシステムと複数のプログラミング言語をサポートでき、ほぼすべての主流のエンタープライズレベルのテクノロジープラットフォームをカバーできます。
インストール
rabbitmqの公式ウェブサイトhttps://www.rabbitmq.com/download.htmlのダウンロードページで、さまざまなオペレーティングシステムのインストールパッケージと手順を取得できます。ここでは、一般的に使用されるいくつかのプラットフォームを1つずつ説明します。
以下は、使用するerlangおよびrabbitmqサーバーのバージョンの説明です。
Windowsのインストール
Erlandをインストールし、公式ダウンロードページhttp://www.erlang.org/downloadsからExeインストールパッケージを取得し、直接開いてインストールを完了します。
rabbitmqをインストールし、公式ダウンロードページhttps://www.rabbitmq.com/download.htmlを介してExeインストールパッケージを取得します。
ダウンロードが完了したら、インストーラーを直接実行します。
RabbitMQサーバーのインストールが完了すると、サービスとして自動的に登録され、デフォルトの構成から開始されます。
Mac OS Xのインストール
Mac OS XでBrew Toolを使用すると、Rabbitmqサーバーを簡単にインストールできます。次のコマンドに従ってください。
上記のコマンドを介して、RabbitMQサーバーコマンドが/usr/local/sbinにインストールされ、ユーザーの環境変数に自動的に追加されないため、次のコンテンツを.bash_profileまたは.profileファイルに追加する必要があります。
path = $ path:/usr/local/sbin
このようにして、RabbitMQ-Serverコマンドを介してRabbitMQサーバーを起動できます。
Ubuntuインストール
ubuntuでは、aptリポジトリを使用してインストールできます
erlangをインストールして実行:apt-getインストールerlang
次のコマンドを実行して、/etc/apt/sources.list.dにaptリポジトリを追加します
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
aptリポジトリのパッケージリストを更新し、sudo apt-get updateコマンドを実行する
Rabbit Serverをインストールし、sudo apt-getインストールrabbitmq-serverコマンドを実行する
ウサギ管理
構成ファイルアクセス、またはWebアクセスを介して直接管理できます。以下に、Webを介して管理する方法を紹介します。
rabbitmq-pluginsを実行して、rabbitmq_managementコマンドを有効にして、ブラウザを介して管理できるようにWeb管理プラグインを有効にします。
> rabbitmq-plugins enable rabbitmq_managemented以下のプラグインが有効になっています:mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_managementapplyingプラグインの構成
ブラウザを開いて、http:// localhost:15672/をご覧ください。デフォルトのユーザーゲストと一緒にログインすると、パスワードもゲストです。次の図の管理ページを見ることができます。
図から、つながり、チャネル、交換、キューなど、前の章で言及されている基本的な概念をいくつか見ることができます。初めて使用する読者は、rabbitmqサーバーのサーバー側に精通しているコンテンツをクリックして確認できます。
[管理]タブをクリックして、ここでユーザーを管理します。
スプリングブート統合
以下に、RabbitMQをSpring Bootアプリケーションに統合し、メッセージの送信と受信の簡単な例を実装することにより、RabbitMQの直感的な感覚と理解があります。
スプリングブーツにRabbitMQを統合することは非常に簡単です。これは、スターターPOMSを以前に導入したことがあり、AMQPモジュールはRabbitMQをよくサポートできるためです。統合プロセスについて詳しく話しましょう。
「rabbitmq-hello」という名前の新しいスプリングブートプロジェクトを作成します。
pom.xmlでは、RabbitmqをサポートするためにSpring-Boot-Starter-AMQPが使用される、次の依存関係が導入されています。
<parent> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <バージョン> 1.3.7.release </version> <relativepath/> <! - lookup parent from repository-> </parent> <deplencies> <artifactid> spring-boot-starter-amqp </artifactid> </dependency> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-test </artifactid> <scope> test </scope> </depencies> </depencies>
application.propertiesでrabbitmqに関する接続とユーザー情報を構成します。ユーザーは、上記のインストールコンテンツに戻り、管理ページでユーザーを作成できます。
spring.application.name = rabbitmq-hello
spring.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
メッセージプロデューサー送信者を作成します。 AMQPTEMPLATEインターフェイスは、AMQPTEMPLATEインターフェイスのインスタンスを注入することにより、AMQPプロトコルの一連の基本操作を定義します。 Spring Bootでは、その特定の実装が構成に応じて挿入されます。このプロデューサーでは、文字列を生成し、Helloと呼ばれるキューに送信します。
@componentPublic class Sender {@autowired private amqptemplate rabbittemplate; public void send(){string context = "hello" + new date(); system.out.println( "sender:" + context); this.rabbittemplate.convertandsend( "hello"、context); }}メッセージコンシューマレシーバーを作成します。 @rabbitlistenerアノテーションは、このクラスのハローキューのリスニングを定義し、@rabbithandlerアノテーションを使用してメッセージの処理方法を指定します。したがって、消費者はハローキューの消費を実現し、消費操作は出力メッセージの文字列コンテンツです。
@component @rabbitlistener(queues = "hello")public class Receiver {@rabbithandler public void process(string hello){system.out.println( "receiver:" + hello); }} rabbitmq構成クラスRabbitconfigを作成します。これは、キュー、スイッチ、ルーティングなどの高度な情報の構成に使用されます。ここでは、開始に焦点を当て、基本的な生産と消費プロセスを完了するための最小化構成で最初に定義します。
@configurationpublic class rabbitconfig {@bean public queue helloqueue(){return new queue( "hello"); }}メインアプリケーションクラスを作成します。
@SpringBootApplicationPublic Class HelloApplication {public static void main(string [] args){springApplication.run(helloapplication.class、args); }}メッセージ制作を呼び出すためのユニットテストクラスを作成します。
@runwith(springjunit4classrunner.class)@springApplicationConfiguration(classes = helloapplication.class)public class helloapplicationtests {@autowired private sender sender; @test public void hello()throws exception {sender.send(); }}プログラムの作成を完了したら、実行してみてください。まず、RabbitMQサーバーが開始されたことを確認し、次の操作を実行します。
コンソールからアプリケーションメインクラスを開始すると、次のコンテンツが表示されます。プログラムは、127.0.0.1:5672にSpringCloudにアクセスするための接続を作成します。
コードを次のようにコピーします。OSARCCACHINGCONNECTIONFACTORY:作成された新しい接続:SimpleConnection@29836D32 [Delegate = Amqp://[email protected]:5672/]
同時に、RabbitMQコントロールパネルを介して、接続およびチャネルに現在の接続を含むエントリがあることがわかります。
ユニットテストクラスを実行すると、コンソールに次の出力が表示され、メッセージがRabbitMQサーバーのハローキューに送信されます。
送信者:ハローサン9月25日11:06:11 CST 2016
アプリケーションのメインクラスのコンソールに切り替えて、次の出力を確認できます。消費者はハローキューのリスナープログラムを実行し、受信したメッセージ情報を出力します。
レシーバー:ハローサン9月25日11:06:11 CST 2016
上記の例を使用して、Spring-Boot-Starter-AMQPモジュールをSpring Bootアプリケーションで導入し、RabbitMQメッセージの生産と消費の開発コンテンツを完了するように構成しました。ただし、実際のアプリケーションでは、実証されていないコンテンツがまだたくさんあるため、ここではこれ以上説明をしません。読者は、より包括的な理解を得るために、公式のrabbitmqチュートリアルを自分で確認できます。
完全な例:第5-2-1章
オープンソース中国:http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
github:https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。