全部產品
Search
文件中心

ApsaraMQ for RocketMQ:Demo工程

更新時間:Jul 01, 2024

針對初次接觸雲訊息佇列 RocketMQ 版的工程師,本文以TCP協議下的Java SDK為例,提供操作樣本協助您從零開始搭建雲訊息佇列 RocketMQ 版測試工程。Demo工程包含普通訊息、順序訊息、事務訊息、定時和延時訊息的測試代碼,以及相關Spring的配置。

前提條件

  • 安裝IDE。

    您可以使用IntelliJ IDEA或者Eclipse,本文以IntelliJ IDEA為例。

    請下載IntelliJ IDEA Ultimate版本,並參見IntelliJ IDEA說明進行安裝。更多資訊,請參見下載地址

  • 下載Demo工程。

    訊息佇列RocketMQ版程式碼程式庫下載Demo工程到本地,然後解壓即可看到本地新增了mq-demo-master檔案夾。該檔案夾包括純Java、Spring以及Spring Boot的範例程式碼,本文以純Java的範例程式碼為例。

  • 下載安裝JDK。更多資訊,請參見JDK下載地址

配置Demo工程

  1. 將Demo工程檔案匯入IntelliJ IDEA。

    1. 在IntelliJ IDEA介面,選擇Import Project,選擇mq-demo-master/tcp/java-tcp-demo檔案夾。

    2. 選擇Import類型為Maven

    3. 預設單擊Next,直到匯入完成。Demo工程需要載入依賴的JAR包,因此匯入處理程序需要等待2-3分鐘。

  2. 建立資源。

    您需要先到訊息佇列RocketMQ版控制台建立所需資源,包括執行個體、Topic、Group ID(GID),以及鑒權需要的AccessKey ID(AK)和AccessKey Secret(SK)。

    更多詳細資料和操作指導,請參見建立資源

  3. 配置Demo。

    1. 修改pom.xml檔案。建議將ons-client版本號碼修改為最新版本。具體版本資訊,請參見版本說明

      <dependency>
          <groupId>com.aliyun.openservices</groupId>
          <artifactId>ons-client</artifactId>
          <!--建議替換為Java SDK的最新版本號碼-->
          <version>1.8.8.5.Final</version>
      </dependency>                            
    2. 您需將在步驟2中建立好的資源資訊配置到檔案:MqConfig類。

      public static final String TOPIC = "您已建立的Topic";
      public static final String GROUP_ID = "您已建立的Group ID";
      public static final String ORDER_TOPIC = "您已建立的用於收發順序訊息的Topic";
      public static final String ORDER_GROUP_ID = "您已建立的用於收發順序訊息的Group ID";
      public static final String ACCESS_KEY = "您的阿里雲帳號的AccessKey ID,擷取方式,請參見建立AccessKey";
      public static final String SECRET_KEY = "您的阿里雲帳號的AccessKey Secret,擷取方式,請參見建立AccessKey";
      public static final String TAG = "您自訂的訊息Tag屬性";
      public static final String NAMESRV_ADDR = "您已建立的訊息佇列RocketMQ版執行個體的TCP存取點,可在訊息佇列RocketMQ版控制台執行個體詳情頁面的存取點地區查看";                              
      說明
      • 如果RAM使用者擁有該Topic的許可權以及自己的AccessKey,那麼也可以使用RAM使用者的AccessKey。

      • 參數與介面的更多資訊,請參見介面和參數說明

以Main方式運行Demo

  1. 發送訊息。

    • 發送普通訊息:運行SimpleMQProducer類。

    • 發送事務訊息:運行SimpleTransactionProducer類。

      LocalTransactionCheckerImpl類為本地事務check介面類,用於校正事務。更多資訊,請參見收發事務訊息

    • 發送順序訊息:運行SimpleOrderProducer類。

      此方式下,訊息發布和消費都按順序進行。更多資訊,請參見收發順序訊息

    • 發送定時和延時訊息:運行MQTimerProducer類發送訊息。

      延時3秒後投遞。您也可以指定一個精確的投遞時間,最長定時時間為40天。更多資訊,請參見收發定時訊息

    雲訊息佇列 RocketMQ 版控制台,按Topic查詢訊息,可以看到訊息已經發送至Topic。

  2. 接收訊息。

    • 接收普通訊息:運行SimpleMQConsumer類。

    • 接收事務訊息:運行SimpleMQConsumer類。

    • 接收順序訊息:運行SimpleOrderConsumer類。

    • 接收定時和延時訊息:運行SimpleMQConsumer類。

      說明

      Spring和Spring Boot架構暫不支援收發定時和延時訊息。

    可以看到訊息被接收列印的日誌。因為有初始化,所以需等待幾秒,在生產環境中不會經常初始化。

結果驗證:在雲訊息佇列 RocketMQ 版控制台查看消費者狀態,可以看到啟動的消費端已經線上,並且訂閱關係一致。

更多資訊