----私だけのように、ゆっくりと人間の子供を進め、敬意を払うまで追加
質問:何がRabbitMQのは、
ここではいくつかの個人的な感情であり、
RabbitMQのAMQPのプロトコルが(次のされて、これは有効であり、明確ではないが、サーバとサーバ間の接続のためのメッセージキューを実現するために)
プロデューサーは、内部のメッセージキューにメッセージを送信することができますお客様は、メッセージキューを消費します
:そのような多くの共通点(1V1)などの2つの間の通り、(専門用語がありますダイレクト(1Vポリ)対多、ポイント)(専門用語では:fanmout)
方言に:Aは、メッセージを送信し、Bのみ、この点で、このメッセージを受信することができます。
、Dが受信できるメッセージB、Cが、これはポイントツーマルチポイントメッセージで送ります
そこで質問です:なぜRabbitMQのを使用する必要があります(シーンの使用はどのようなものです)
非同期処理、デカップリングの応用、交通クリッピングなど
https://www.cnblogs.com/zhao-yi/p/9299126.html
どのようにspringBootを使用するには?
ドッキングウィンドウは、特定のインストールは明確ではない行うには、ミラーのRabbitMQ私自身の使用を実行し、そのRabbitMQのサーバーを使用します
springBoot主な手順で:
1は、の導入に依存しています
<! -引入RabbitMQの消息中间件- >
<依存>
<groupIdを> org.springframework.boot </ groupIdを>
<たartifactId>春・ブート・スタータAMQP </たartifactId>
</依存関係>
図2に示すように、コンフィギュレーションのRabbitMQ接続(ウサギ自体はサーバであり、それは、JDBC全般としてデータ接続に接続されています)
#1を構成しRabbitMQを(あなたがアイテムを表示するために自分のためrabbitPropertiesを見ることができるように構成する必要があり、デフォルトの設定項目)
Sring:
RabbitMQの:
ホスト:192.168.3.48
ポート:5672
仮想ホスト:/
ユーザ名:お客様の
パスワード:ユーザーレビュー
3、メッセージを送信し、メッセージのケースを受け取ります
#ニュースリリーステスト
@Test ます。public voidテスト(){ //以前のテンプレートツールのほとんどは、RabbitMQの上で動作しているように一緒にもたらした のSystem.out.println(「HELLOを」); //が必要な以下のパラメータを送信問い合わせメッセージの後に、メッセージが少し面倒クラスですが、この使用することは推奨されていない // rabbitTemplate.send(「qf.direct」、「;あなたが直接接続されていることを忘れないでください」) 地図<文字列、オブジェクトを>地図=新しい新しいHashMapの<>(); map.put( "第一"、 "こんにちは"); map.put( "SECOND、"、 "みなさんこんにちは"); rabbitTemplate.convertAndSend( "exchange.direct"、「QF "マップ); System.out.printlnは("成功した「送られる); }
#テスト消費者のニュース
@Test
{公共ボイド受信()
//内部メッセージキューに指定されたメッセージを取得する
オブジェクトrabbitTemplate.receiveAndConvert QF =( "QF")
のSystem.out.println(qf.getClass());
System.out.printlnは( QF)
のSystem.out.println( "正常取得");
}
図4に示すように、使用@RabbitListenerする注釈(詳細なロジック、および無知のこの部分の原理を使用して)
使用@RabbitListener注釈がRabbitMQのコメントをオンにする必要があります
@EnableRabbit
@EnableCaching
@MapperScan( "com.qf.springboot01.dao")
@SpringBootApplication
パブリッククラスSpringboot01Application {
パブリック静的無効メイン(文字列[] args){
SpringApplication.run(Springboot01Application.class、引数)。
}
}
次のようにしている場合に使用します。
@RabbitListener(キュー= "QF") 公共ボイドは(受信対象者の){ (人物== NULL){場合 のSystem.out.println( "人物里面是空的")。 } のSystem.out.println(); System.out.println( "接受人" +人)。 System.out.println(person.toString())。 } }
注釈 キューキューパラメータは、リスナーが複数のキューに耳を傾けることを指定します
直接カプセル化されるデータ収集の同じタイプがある場合、メッセージキューの内部整合させるための注釈パラメータを標識する方法であって、そうでない場合は同じ
カプセル化するだけでなく、メッセージの方言を消費しませではありません:私は、私はそれはあなたに同じことを与えていない場合のパラメータは、あなたとの対応与えるだろうメッセージが、メッセージが表示されます
私はまた出てきました。
5、注意:
依存を導入する場合、前記RabbitAutoConfigurationの メッセージ本文は、本実施形態のシーケンスに格納されたクラスは、自動的に私たちを助けるために構成されたロットは、また、キューに設定されています
しかし、デフォルトの直列化は失読症で結果キューに格納されたバイト配列としてシリアライズされます。
それで、あなたは彼設定する場合、MessageConverterを次のように:
@Configuration パブリッククラスMyAMQPConfig { @Bean 公共MessageConverter messageConverter(){ )(新しいJackson2JsonMessageConverterを返します。 } }
比較的浅いので、これらの単純なものの唯一のレコードは、理解のうえバックするので、現在は、知っています、
あなたは、これらのデータを追加するために戻ってくるホープ