メッセージミドルウェアは、システム間のデカップリングとピーク除去に大きな役立ちます。 Spring Bootはこの部分の内容も統合し、統合するのが最も簡単なことはRabbitMQです。今日は、rabbitmqを例として使用します。
古いルール、最初にPOMを見てみましょう
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter </artifactid> </dependency> <dependency> springframework.boot </groupid> <artifactid> spring-boot-starter-web </artifactid> </depancy> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-amqp </artifactid> </dependency> <dependency> groupjed> org.projectlombok </groupId> <artifactid> lombok </artifactid> </dendercy>
AMQP、または高度なメッセージキューイングプロトコル、統一されたメッセージングサービスを提供するアプリケーションレベルの標準上級メッセージキュープロトコルは、アプリケーションレベルのプロトコルのオープン標準であり、メッセージ指向のミドルウェア向けに設計されています。このプロトコルに基づくクライアントとメッセージミドルウェアはメッセージを渡すことができ、クライアント/ミドルウェアのさまざまな製品や開発言語に制限されていません。 Spring-Boot-Starter-AMQPはRabbitmqを紹介します。前提条件があります。最初にマシンにRabbitMQサーバーをインストールし、次にRabbitMQ-Serverサーバーを実行して起動します。開始後、クライアントプログラムを構成できます。最初に構成ファイルを見てください
spring.application.Name:spirng-boot-rabbitmqspring.rabbitmq.host:127.0.0.1spring.rabbitmq.port:5672spring.rabbitmq.username:guestspring.rabbitmq.password:ゲスト
サーバーのIP、ポート、ユーザー名、パスワード、その他の基本情報は、サーバーに接続できるように設定されています。
rabbitmq構成クラスを追加します
パッケージcom.shuqi; import org.springframework.amqp.core.queue; Import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; @configurationpublic class rabbitconfig {@bbean public que( "hill fiu"; }}Helloという名前のキューが作成され、プロデューサーはデータをHelloキューに入れることができ、消費者はHelloキューからデータを消費できます。プロデューサーのハンドラーをチェックしてください
パッケージcom.shuqi.controller; Import org.springframework.amqp.core.amqptemplate; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestparam; Import org.springframework.web.bind.annotation.restController; @RestControllerPublic Class HelloController {@Autowired Private Amqptemplate Rabbittemplate; @RequestMapping( "/hello")public string hello(@requestparam string name){rabbittemplate.convertandsend( "hello"、 "hello"+name); 「正常に送信されたメッセージ」を返します。 }}コントローラーを介したメッセージの生産とamqptemplateを介したメッセージの送信。プロデューサーと一緒に、消費者を見てみましょう
パッケージcom.shuqi.consumer; Import lombok.extern.slf4j.slf4j; Import org.springframework.amqp.rabbit.annotation.annotation.rabbithandler; Import org.springframework.amqp.rabbit.annotation.rabbitlistener; Import; org.springframework.stereotype.component;@component@rabbitlistener(queues = "hello")@slf4jpublic class helloconsumer {@rabbithandler public void process(string hello){log.info( "receece message:message:{}"、hello); }}@rabbitlistener(queues = "hello")は、それがrabbitmqリスナーであることを意味します。リスナーのキュー名はこんにちはです。つまり、データは間違いなく来ることを意味します。データが来ると、データは@Rabbithandler修正法を介して処理されます。印刷します。プロジェクトを始めて結果を見てみましょう。
http:// localhost:8080/hello?name = shuqiをブラウザに入力して、次の結果を確認してください
コンソールからのログ出力をご覧ください
2018-03-25 16:24:32.752 Info 4987 --- [ctaskexecutor-1] com.shuqi.consumer.helloconsumer:受信メッセージ:メッセージ:hello shuqi
これは、メッセージが消費者によって受信および処理されたことを意味します。あなたはそれで遊ぶことができます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。