全部產品
Search
文件中心

ApsaraMQ for RocketMQ:Spring整合

更新時間:Mar 28, 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設定檔。

參數

說明

樣本值

accessKey

AccessKey ID,阿里雲身分識別驗證標識。用於對用戶端進行許可權控制。

yourAccessKeyID

secretKey

AccessKey Secret,阿里雲身分識別驗證密鑰。用於對用戶端進行許可權控制。

yourAccessKeySecret

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.java

OrderConsumerClient.java

事務訊息

TransactionProducerClient.java

ConsumerClient.java