春ブーツ2.X - 春ブーツ整合AMQP之のRabbitMQ

記事のディレクトリ
春ブーツ2.X - RabbitMQの春ブーツAMQP統合
RabbitMQの導入
導入が依存している
書き込み設定
書き込みにインタフェースを
注釈ウサギ有効にする
リスナーメッセージ
メッセージングテスト
春ブーツ2.Xを-春ブーツのRabbitMQのAMQPを統合
RabbitMQのケースを統合春ブーツ2。

RabbitMQのはじめに
はじめ
のRabbitMQはAMQP(Advanvedメッセージキュープロトコル)によって開発されたアーランであるオープンソース実装です。
コアコンセプト
メッセージの
メッセージは、メッセージは、メッセージヘッダとメッセージ本体で構成され、匿名です。メッセージ本体が不透明であり、そして任意の属性セット一連のメッセージヘッダ
これらの特性には、ルーティングキー(ルーティングキー)、優先度(他のメッセージに優先順位と比較)、配送モードを含む(注意その
メッセージ月永続ストレージを必要とする)と、上のようにします。
パブリッシャの
メッセージのプロデューサーは、また、クライアントアプリケーションのスイッチにメッセージを発行しました。
交換
サーバーのキューにメッセージプロデューサとルートに送信されたメッセージを受信するためのスイッチ。
Exchangeは4つのタイプがあります。直接(デフォルト)、ファンアウト、トピック、戦略とヘッダを、取引所の異なるタイプがメッセージを持っている転送
の区別を。
キューの
メッセージキューは、消費者に伝達されるまでメッセージを保存します。これは、メッセージのコンテナで、メッセージは終わりです。メッセージは、
1つ以上のキューに入れることができます。メッセージは、消費者がそれを削除しますキューに接続するのを待って、待ち行列の内部にありました。
バインディング
メッセージ・キューとスイッチとの間の関連を結合。結合は、キーベースのスイッチと接続されたメッセージキュールーティング
ルールルーティングを拾う、それがルーティングテーブルにスイッチが結合することによって構成することを理解することができます。
取引所キューと結合は、多くの関係に多くのことができます。
接続
そのようなTCP接続などのネットワーク接続、。
チャンネル
1つの独立した流路の双方向データ接続チャネルマルチプレクサ。仮想チャネルは、実際のTCP接続で確立された
接続することを意図し、AMQPコマンドは、メッセージキュー、サブスクライブまたは受信、それが発表されているかどうか、チャネルを介して送信され
、これらのアクションは、チャネルを介して行われます。TCPと破壊の設立以来、オペレーティングシステムのための非常に高価なオーバーヘッドです
TCP接続を再利用するためには、チャネルの概念を導入します。
消費者の
メッセージキューから情報を取得するためのクライアントアプリケーションを示す消費者のメッセージ。
仮想ホスト
仮想ホストは、スイッチ、メッセージキュー、および関連するオブジェクトのグループを表します。ウェブホスティングは、同じ認証を共有することで、処理する
スタンドアロンサーバードメインの密な環境を。RabbitMQのサーバのミニバージョンでは、各バーチャルホストで、本質的に
自身のキュー、スイッチ、結合および許可メカニズム。AMQPは、バーチャルホストの考え方の基本は、接続時に指定する必要があり、さ
のRabbitMQは/デフォルトのバーチャルホストです。
Brokerは、
メッセージキューサーバエンティティを表し、


依存の導入
使用春Initializrはすぐに春ブーツプロジェクトバネブート-V2-AMQPを作成し、主に次のように依存します。

<依存性>
<のgroupId> org.springframework.boot </のgroupId>
<たartifactId>ばねブートスタータAMQP </たartifactId>
</依存>
<依存性>
<のgroupId> org.springframework.boot </のgroupId>
<たartifactId >春・ブート・スターター・ウェブ</たartifactId>
</依存関係>

编写配置
添加のRabbitMQ的配置信息.RabbbitMQ安装请参阅ドッカー安装のRabbitMQ

春:
RabbitMQの:
ホスト:192.168.0.2#RabbitMQのホストIP
ポート:5672#5672デフォルト、同じ書いていない
ユーザー名:ゲスト#デフォルトのゲストを、同じ書き込みません
同じ書いていない、ゲスト#デフォルトゲスト:パスワードを
#バーチャルホストを:/#デフォルト値は"/"を書き込むことが必要ではないが、公共のボイドsetVirtualHost(文字列仮想ホスト) {this.virtualHost = "" .equals(仮想ホスト)? "/":仮想ホスト;}


インターフェイスは、書き込み
メッセージを送信するために、新しいAmqpControllerを

@RestController
パブリッククラスAmqpController {

民間最終RabbitTemplate rabbitTemplate。

公共AmqpController(RabbitTemplate rabbitTemplate){
this.rabbitTemplate = rabbitTemplate。
}

民間最終静的な文字列SUCCESSは「成功」=;

/ **
*单点
* @param MSG
* @return
* /
@GetMapping( "/ダイレクト")
パブリック文字列直接(文字列MSG){
rabbitTemplate.convertAndSend( "amq.direct"、 "xudc"、MSG)。
SUCCESSを返します。
}

( "/ファンアウト")@GetMapping
パブリック文字列ファンアウト(文字列MSG){
rabbitTemplate.convertAndSend( "amq.fanout"、 ""、MSG)。
SUCCESSを返します。
}

( "/トピック")@GetMapping
パブリック文字トピック(文字列MSG){
rabbitTemplate.convertAndSend( "amq.topic"、 "xudc#"、MSG);
戻りSUCCESS;
}
}

注釈ウサギ有効
プラスマスターブートクラスをノート@EnableRabbit

@SpringBootApplication
@EnableRabbit // RabbitMQのオープン注釈ベースのモデル
パブリッククラスSpringBootAmqpApplication {

静的な無効メインパブリック(文字列[]引数){
SpringApplication.run(SpringBootAmqpApplication.class、引数);
}
}

メッセージリスナ
書込みメッセージリスナ

@Component
パブリッククラスAmqpListener {

@RabbitListener(キュー= "xudc")
公共ボイドreceive1(文字メッセージ){
System.err.println( "xudc - receive1接收到消息:" +メッセージ)。
}

@RabbitListener(キュー= "xudc.book")
公共ボイドreceive2(文字メッセージ){
System.err.println( "xudc.book - receive2接收到消息:" +メッセージ)。
}

@RabbitListener(キュー=「アンディ」)
公共ボイドreceive3(文字メッセージ){
System.err.println(「アンディ- receive3受信されたメッセージ:」メッセージ+);
}
}

メッセージングテスト
ダイレクト
ファンアウト
トピック
したがって、春の起動を実現しますそして、のRabbitMQシンプルな統合。
----------------
免責事項:この記事は元の記事CSDNブロガー「xudc」で、CC 4.0 BY-SAの著作権契約書に従ってください、複製、元のソースのリンクと、この文を添付してください。 。
オリジナルリンクします。https://blog.csdn.net/xudc0521/article/details/89362348

おすすめ

転載: www.cnblogs.com/weizhxa/p/12100192.html