この記事では、主に基本的な統合について説明しています。最初にコードを開始してから、高度な機能について話しましょう。
rabbitmqのいくつかの用語
RabbitMQ Webコンソールを開くと、吐き出しの1つが理解しにくいことがわかります。以下で簡単に説明しましょう。
交換
スイッチはルーターのようなものです。最初にスイッチにメッセージを送信し、次にスイッチはルーティングキーに従って対応するキューにメッセージを配信します。 (この概念を理解することが重要であり、これは後続のコードに完全に反映されています)
列
キューは理解しやすいので、説明する必要はありません。
バインディング
このメッセージを配信するためのキューをスイッチはどのようにして知っていますか?これには結合が必要です。おそらく次のとおりです。ルーティングキーを使用して、キューを特定の交換にバインドするため、スイッチはどのキューに届いてルーティングキーに応じてメッセージを配信します。 (これは後続のコードに完全に反映されています)
rabbitmq maven依存関係に参加します
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-amqp </artifactid> </dependency>
別の依存関係を追加します(この依存関係は、主にコードを簡素化するために使用できます)
<Dependency> <GroupId> cn.hutool </groupid> <artifactid> hutifactid-all </artifactid> <bersion> 4.0.2 </version> </dependency>
rabbitmqconfig.java構成
@configurationPublic class rabbitmqconfig {public final static string queue_name = "spring-boot-queue"; public final static string exchange_name = "spring-boot-exchange"; public final static string routing_key = "spring-boot-key"; // queueを作成@bean public queue queue(){return new queue(queue_name); } //トピックタイプExchangeを作成@bean public topicexchange endged(){return new topicexchange(exchange_name); } //ルーティングキー(RoutingKey)を使用してキュー(キューキュー、TopiceXChange Exchange){return bindingBuilder.bind(Queue).to(Exchange).with(routing_key); } @bean public connectionfactory connectionfactory(){cachingConnectionFactory ConnectionFactory = new CachingConnectionFactory( "127.0.0.1"、5672); ConnectionFactory.setUsername( "guest"); connectionfactory.setPassWord( "guest"); ConnectionFactoryを返します。 } @bean public rabbittemplate rabbittemplate(connectionfactory connectionfactory){return new rabbittemplate(connectionFactory); }}プロデューサー
rabbittemplateのconvertandsendメソッドに直接電話してください。また、次のコードから、メッセージをキューに直接送信するのではなく、最初にスイッチに送信し、スイッチがルーティングキーに従って対応するキューにメッセージを配信します。
@RestControllerPublic Class ProducterController {@autowired private rabbittemplate rabbittemplate; @getMapping( "/sendmessage")public object sendmessage(){new Stread(() - > {for(int i = 0; i <100; i ++){string value = new DateTime()。toString( "yyyy-mm-dd hh:mm:mm:ss"); console.log( "メッセージ{}"} "、valut); rabbittemplate.convertandsend(rabbitmqconfig.exchange_name、rabbitmqconfig.routing_key、value)}); start(); 「OK」を返します。 }}消費者
また、消費者にとっても非常に簡単です。 @rabbitlistenerアノテーションを対応する方法に追加し、聞くべきキューの名前を指定するだけです。
@componentPublic class Consumer {@RabbitListener(Queues = rabbitmqconfig.queue_name)public void consumptionmessage(string message){console.log( "cansume message {}"、message); }}プロジェクトを実行します
プロジェクトを実行してから、ブラウザを開き、 http://localhost:9999/sendMessageを入力します。コンソールでは、プロデューサーが絶えずメッセージを送信し、消費者は絶えずメッセージを消費しているのを見ることができます。
Rabbitmq Webコンソールを開くと、コードで構成したスイッチとキュー、および拘束力のある情報も確認できます。
クリックしてExchangeの詳細を入力します
結論
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。