雲訊息佇列 RocketMQ 版支援整合Spring架構的Java SDK收發訊息,本文為您介紹如何使用雲訊息佇列 RocketMQ 版提供的Spring架構的Demo工程。
背景資訊
雲訊息佇列 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,阿里雲身分識別驗證標識。用於對用戶端進行許可權控制。 | LTAI5t6K7KY******VjAY3yS |
secretKey | AccessKey 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.java | OrderConsumerClient.java |
事務訊息 | TransactionProducerClient.java | ConsumerClient.java |