全部產品
Search
文件中心

ApsaraMQ for RocketMQ:Spring整合

更新時間:Feb 09, 2025

雲訊息佇列 RocketMQ 版支援整合Spring架構的Java SDK收發訊息,本文為您介紹如何使用雲訊息佇列 RocketMQ 版提供的Spring架構的Demo工程。

背景資訊

雲訊息佇列 RocketMQ 版支援以下訊息類型的生產者和消費者與Spring整合:
  • 普通訊息的生產者和消費者
  • 事務訊息的生產者和消費者
  • 順序訊息的生產者和消費者
說明 雲訊息佇列 RocketMQ 版暫不支援Spring架構下定時訊息和延時訊息的收發。

環境準備

步驟一:下載Demo工程

雲訊息佇列 RocketMQ 版提供SpringBoot和Spring兩種方式的Demo,本文以SpringBoot的工程為例為您介紹如何使用SDK收發訊息,Spring方式的Demo工程使用步驟和SpringBoot類似。

步驟二:建立資源

您需要先到雲訊息佇列 RocketMQ 版控制台建立所需資源。

  • 建立雲訊息佇列 RocketMQ 版執行個體
  • 建立Topic

    建立Topic時,Topic的訊息類型必須和發送的訊息類型一致,不能混用。例如您發送普通訊息,則需要建立普通訊息類型的Topic,發送順序訊息時,則建立順序訊息類型的Topic。

  • 建立Group ID

    Group的協議類型需要和SDK的協議類型一致,雲訊息佇列 RocketMQ 版提供的Spring架構的Java SDK為TCP協議,因此您在建立Group ID時需要選擇TCP協議。

  • 擷取執行個體的TCP協議存取點

    雲訊息佇列 RocketMQ 版提供的Spring架構的Java SDK為TCP協議,因此您需要擷取TCP協議的存取點。

  • 建立AccessKey

步驟三:Demo工程配置

在IDEA中建立Java工程並匯入步驟一:下載Demo工程中擷取的Demo檔案,然後配置以下內容。

修改pom.xml檔案

pom.xml檔案中的依賴如下,建議您將ons-client修改至最新版本。具體版本資訊,請參見版本說明

<dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>ons-client</artifactId>
            <version>1.8.8.8.Final</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

參數配置

根據步驟二:建立資源中的資源資訊,修改java-springboot-demo/src/main/resources路徑下的application.properties設定檔。

參數說明樣本值
accessKeyAccessKey ID,阿里雲身分識別驗證標識。用於對用戶端進行許可權控制。LTAI5t6K7KY******VjAY3yS
secretKeyAccessKey Secret,阿里雲身分識別驗證密鑰。用於對用戶端進行許可權控制。P6z2pkIKAZ******n61JZ5e1lofFG9
nameSrvAddr雲訊息佇列 RocketMQ 版執行個體的TCP協議存取點,使用者訪問雲訊息佇列 RocketMQ 版服務端。http://MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80
topic您在控制台建立的Topic,用於發送訊息。noamal_topic
groupId您在控制台建立的Group ID,用於訂閱訊息。GID_test
tag訂閱訊息時的過濾運算式,例如“*”表示訂閱指定Topic中的所有訊息;“Tag A||Tag B”表示消費者訂閱了Topic中帶有Tag A和Tag B兩種Tag的訊息。更多資訊,請參見訊息過濾*
orderTopic您在控制台建立的用於發送順序訊息的Topic。order_topic
orderGroupId您在控制台建立的用於訂閱順序訊息的Group ID。GID_order
orderTag訂閱順序訊息時的過濾運算式。更多資訊,請參見訊息過濾tagA

步驟四:以Main方式運行Demo

運行範例程式碼時,請確保java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example路徑下的類已匯入到工程中。

訊息類型發送訊息範例程式碼訂閱訊息範例程式碼
普通訊息ProducerClient.java
順序訊息OrderProducerClient.javaOrderConsumerClient.java
事務訊息TransactionProducerClient.javaConsumerClient.java