目次
はじめに
#pom.xml ファイルの内容を次のように変更します:
RabbitMQ の構成
構成ファイル
次の内容を含む application.yml を作成します:
RabbitMQ キューとスイッチをバインドするための構成クラスを作成します com.itheima.rabbitmq.config .RabbitMQConfig
プロジェクトの作成
生産終了
RabbitMQ を構成します
Rabbitmq:
ポート: 5672
まず上記のテスト プログラムを実行し (最初にキューを宣言してバインドできます)、次にコンシューマーが開始され、対応するメッセージが受信されるかどうかを確認します。コンソール上のコンシューマ プロジェクト springboot-rabbitmq-consumer にあります。
基本情報は yml で構成され、キュー対話マシンとバインディング関係は構成クラスの Bean を使用して構成されます
ホームページ Java &#&チュートリアル SpringBootでメッセージキューRabbitMQを統合する方法は何ですか?

SpringBootでメッセージキューRabbitMQを統合する方法は何ですか?

May 16, 2023 pm 05:25 PM
springboot rabbitmq

    はじめに

    Spring プロジェクトでは、Spring-Rabbit を使用して RabbitMQ を操作できます。

    特に Spring Boot プロジェクトでは、対応する amqp スターター依存関係を導入し、RabbitTemplate を便利に使用してメッセージを送信し、アノテーションを使用してメッセージを受信するだけです。

    通常、開発プロセス中:

    プロデューサー プロジェクト:

    • application.yml ファイルは RabbitMQ 関連情報を構成します。

    • #プロデューサ プロジェクトに構成クラスを記述してスイッチとキューを作成し、それらをバインドします

    • RabbitTemplate オブジェクトを挿入し、RabbitTemplate オブジェクトを通じてスイッチにメッセージを送信します

    コンシューマ エンジニアリング:

    • application.yml ファイル構成 RabbitMQ 関連情報

    • メッセージ処理クラスを作成します。キュー内のメッセージを受信して​​処理します

    プロダクション終了

    1. プロデューサー SpringBoot プロジェクト (Maven) を作成します

    2. はじめに開始、依存座標
    & lt; 依存関係 & gt;
    & lt; グループ & gt; org.springFramework.Boot & LT;/Groupid & GT;
    & LT; ArtiFactid & GT; Spring-Boot-Starter- AMQP & LT;/Artifactid & GT;
    & LT; /dependency>

    3. yml 設定と基本情報設定を書き込む

    4. スイッチ、キュー、バインディング関係の設定クラスを定義する
    5. RabbitTemplate を挿入し、メソッドを呼び出し、メッセージ送信を完了します

    依存関係を追加します

    #pom.xml ファイルの内容を次のように変更します:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.4.RELEASE</version>
        </parent>
        <groupId>com.itheima</groupId>
        <artifactId>springboot-rabbitmq-producer</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
            </dependency>
        </dependencies>
    </project>
    ログイン後にコピー

    Startup class

    package com.itheima.rabbitmq;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class ProducerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProducerApplication.class);
        }
    }
    ログイン後にコピー

    RabbitMQ の構成

    構成ファイル

    次の内容を含む application.yml を作成します:

    spring:
    Rabbitmq:

    ホスト: localhost
    ポート: 5672
    仮想ホスト: / itcast
    ユーザー名: heima
    パスワード: heima

    バインド スイッチとキュー

    RabbitMQ キューとスイッチをバインドするための構成クラスを作成します com.itheima.rabbitmq.config .RabbitMQConfig

    package com.itheima.rahhitmq.config;
    import org.springframework.amqp.core.*;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    @Configuration /// 配置类
    public class RabbitMQConfig {
        public static final String EXCHAGE_NAME = "boot_topic_exchange";
        public static final String QUEUE_NAME = "boot_queue";
        // 交换机
        @Bean("bootExchange")
        public Exchange bootExchange(){
            // 构建交换机对象
            return ExchangeBuilder.topicExchange(EXCHAGE_NAME).durable(true).build();
        }
        //Queue 队列
        @Bean("bootQueue")
        public Queue bootQueue(){
            return QueueBuilder.durable(QUEUE_NAME).build();
        }
        //队列和交换机的关系 Binding
        /**
         * 1 知道那个队列
         * 2 知道那个交换机
         * 3 routingKey
         */
        @Bean
        public Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue, @Qualifier("bootExchange") Exchange exchange){
            return BindingBuilder.bind(queue).to(exchange).with("boot.#").noargs();
        }
    }
    ログイン後にコピー

    コンシューマ プロジェクトのビルド

    プロジェクトの作成

    生産終了

    1. プロデューサー SpringBoot プロジェクトを作成します

    ##2. 開始、依存関係座標を導入します

    ##org.springframework.boot

    ##spring-boot-starter-amqp

    yml 設定、基本情報設定を書きます

    スイッチ、キュー、バインディング関係の設定クラスを定義します

    RabbitTemplate を挿入し、メソッドを呼び出し、メッセージ送信を完了します

    依存関係を追加します


    pom.xml ファイルの内容を次のように変更します。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.4.RELEASE</version>
        </parent>
        <groupId>com.itheima</groupId>
        <artifactId>springboot-rabbitmq-consumer</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
        </dependencies>
    </project>
    ログイン後にコピー

    クラスを開始します。##
    package com.itheima.rabbitmq;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class ConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class);
        }
    }
    ログイン後にコピー

    RabbitMQ を構成します

    ##次の内容を含む application.yml を作成します。

    #spring:

    Rabbitmq:

    ホスト: localhost

    ポート: 5672

    仮想ホスト: /itcast

    ユーザー名: heima

    パスワード: heima


    メッセージ リスニング処理クラス

    メッセージ リスナーの書き込み com.itheima.rabbitmq .listener.MyListener

    package com.itheima.rabbitmq.listener;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    @Component
    public class MyListener {
        /**
         * 监听某个队列的消息
         * @param message 接收到的消息
         */
        @RabbitListener(queues = "item_queue")
        public void myListener1(String message){
            System.out.println("消费者接收到的消息为:" + message);
        }
    }
    ログイン後にコピー

    Test

    プロデューサー プロジェクトでテスト クラスを作成するspringboot-rabbitmq-Producer にアクセスしてメッセージを送信します:
    package com.itheima.rabbitmq;
    import com.itheima.rabbitmq.config.RabbitMQConfig;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class RabbitMQTest {
        @Autowired
        private RabbitTemplate rabbitTemplate;
        @Test
        public void test(){
            rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");
            rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.update", "商品修改,routing key 为item.update");
            rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.delete", "商品删除,routing key 为item.delete");
        }
    }
    ログイン後にコピー

    まず上記のテスト プログラムを実行し (最初にキューを宣言してバインドできます)、次にコンシューマーが開始され、対応するメッセージが受信されるかどうかを確認します。コンソール上のコンシューマ プロジェクト springboot-rabbitmq-consumer にあります。

    SpringBoot は、RabbitMQ を迅速に統合する方法を提供します

    基本情報は yml で構成され、キュー対話マシンとバインディング関係は構成クラスの Bean を使用して構成されます

    プロダクションエンドは、RabbitTemplate を直接挿入してメッセージ送信を完了します

    コンシューマエンドは @RabbitListener を直接使用してメッセージ受信を完了します

    以上がSpringBootでメッセージキューRabbitMQを統合する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    React と RabbitMQ を使用して信頼性の高いメッセージング アプリを構築する方法 React と RabbitMQ を使用して信頼性の高いメッセージング アプリを構築する方法 Sep 28, 2023 pm 08:24 PM

    React と RabbitMQ を使用して信頼性の高いメッセージング アプリケーションを構築する方法 はじめに: 最新のアプリケーションは、リアルタイム更新やデータ同期などの機能を実現するために、信頼性の高いメッセージングをサポートする必要があります。 React はユーザー インターフェイスを構築するための人気のある JavaScript ライブラリであり、RabbitMQ は信頼性の高いメッセージング ミドルウェアです。この記事では、React と RabbitMQ を組み合わせて信頼性の高いメッセージング アプリケーションを構築する方法を紹介し、具体的なコード例を示します。 RabbitMQ の概要:

    RabbitMQ を使用して PHP で分散メッセージ処理を実装する方法 RabbitMQ を使用して PHP で分散メッセージ処理を実装する方法 Jul 18, 2023 am 11:00 AM

    RabbitMQ を使用して PHP で分散メッセージ処理を実装する方法 はじめに: 大規模なアプリケーション開発では、分散システムが一般的な要件になっています。分散メッセージ処理は、タスクを複数の処理ノードに分散することでシステムの効率と信頼性を向上させるパターンです。 RabbitMQ は、AMQP プロトコルを使用してメッセージの配信と処理を実装する、オープンソースの信頼性の高いメッセージ キュー システムです。この記事では、配布のために PHP で RabbitMQ を使用する方法について説明します。

    SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

    SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機能と使用法を調べ、その違いを比較します。まず、SpringBoot について学びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo​​tal チームによって開発されました。スタンドアロンの実行可能ファイルを構築するための高速かつ軽量な方法を提供します。

    Go での RabbitMQ の使用: 完全ガイド Go での RabbitMQ の使用: 完全ガイド Jun 19, 2023 am 08:10 AM

    最新のアプリケーションが複雑になるにつれて、メッセージングは​​強力なツールになっています。この分野では、RabbitMQ は、異なるアプリケーション間でメッセージを配信するために使用できるメッセージ ブローカーとして非常に人気があります。この記事では、Go 言語で RabbitMQ を使用する方法を説明します。このガイドでは以下の内容について説明します: RabbitMQ の概要 RabbitMQ のインストール RabbitMQ の基本概念 Go で RabbitMQ を使用する入門 RabbitMQ と Go

    SpringBoot+Dubbo+Nacos開発実践チュートリアル SpringBoot+Dubbo+Nacos開発実践チュートリアル Aug 15, 2023 pm 04:49 PM

    この記事では、dubbo+nacos+Spring Boot の実際の開発について詳しく説明する例を書きます。この記事では理論的な知識はあまり取り上げませんが、dubbo を nacos と統合して開発環境を迅速に構築する方法を説明する最も簡単な例を書きます。

    Golang と RabbitMQ 間のリアルタイム データ同期のためのソリューション Golang と RabbitMQ 間のリアルタイム データ同期のためのソリューション Sep 27, 2023 pm 10:41 PM

    Golang と RabbitMQ 間のリアルタイム データ同期ソリューションの紹介: 今日の時代では、インターネットの普及とデータ量の爆発的な増加に伴い、リアルタイム データ同期の重要性がますます高まっています。非同期データ送信とデータ同期の問題を解決するために、多くの企業はメッセージ キューを使用してデータのリアルタイム同期を実現し始めています。この記事では、Golang と RabbitMQ に基づくリアルタイム データ同期ソリューションを紹介し、具体的なコード例を示します。 1. RabbitMQ とは何ですか?ラビ

    go-zeroとRabbitMQの応用実践 go-zeroとRabbitMQの応用実践 Jun 23, 2023 pm 12:54 PM

    現在、マイクロサービス アーキテクチャ モデルを採用する企業が増えており、このアーキテクチャではメッセージ キューが重要な通信手段となっており、その中でも RabbitMQ が広く使用されています。 Go 言語では、go-zero は近年登場したフレームワークであり、開発者がメッセージ キューをより簡単に使用できるようにするための実用的なツールやメソッドが数多く提供されています。以下では、実際のアプリケーションに基づいて go-zero を紹介します。とRabbitMQの応用実践。 1.RabbitMQ の概要Rabbit

    Golang RabbitMQ: 高可用性メッセージ キュー システムのアーキテクチャ設計と実装 Golang RabbitMQ: 高可用性メッセージ キュー システムのアーキテクチャ設計と実装 Sep 28, 2023 am 08:18 AM

    GolangRabbitMQ: 高可用性メッセージ キュー システムのアーキテクチャ設計と実装には、特定のコード サンプルが必要です はじめに: インターネット技術の継続的な開発とその広範な応用により、メッセージ キューは現代のソフトウェア システムに不可欠な部分になりました。メッセージ キューは、デカップリング、非同期通信、フォールト トレラント処理、その他の機能を実装するツールとして、分散システムに高可用性とスケーラビリティのサポートを提供します。 Golang は効率的で簡潔なプログラミング言語として、同時実行性とパフォーマンスの高いシステムを構築するために広く使用されています。

    See all articles