在2019年01月23日,云消息隊列 RocketMQ 版優化了資源隔離、資源申請、協議支持以及權限管理。本文提供相關更新說明,幫助您更順暢地使用云消息隊列 RocketMQ 版

說明 為兼容新老資源配置,建議您將ons-client客戶端升級到最新版本。

資源隔離優化(實例化支持)

云消息隊列 RocketMQ 版開放實例化功能,解決多租戶之間的隔離問題,您可以在同一個地域(Region)內購買多個實例,每個實例之間邏輯隔離或者物理隔離。

云消息隊列 RocketMQ 版實例分為以下兩種類型:

  • 標準版:不同實例之間邏輯隔離,每個地域最多創建8個實例。
  • 鉑金版:不同實例之間物理隔離,每個地域鉑金版實例個數不限。更多信息,請參見云消息隊列 RocketMQ 版鉑金版

為兼容老用戶的既有資源,云消息隊列 RocketMQ 版實例可分為以下兩種:

  • 默認實例(兼容老用戶的既有資源):
    • 無獨立命名空間,實例內或者跨實例之間,資源命名必須全局唯一。
    • 云消息隊列 RocketMQ 版老用戶來說,既有資源所在地域將自動生成一個默認的無獨立命名空間實例。
    • 接入點配置(可在控制臺實例詳情頁面中獲取):
          // 推薦配置。
          properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxxx");
          // 兼容配置(不推薦繼續使用,建議逐漸升級為推薦配置)。
          properties.put(PropertyKeyConst.ONSAddr, "xxxx");                  
  • 新建實例:
    • 有獨立命名空間,資源命名確保實例內唯一,跨實例之間可重名。
    • 接入點配置(可在控制臺實例詳情頁面中獲取)。
      // 推薦配置。
      properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxx");                            
    • ons-client客戶端必須升級到最新版本:

資源申請流程優化

云消息隊列 RocketMQ 版的資源包括以下三個部分:

  • 消息主題(Topic)
  • 生產者(Producer ID)
  • 消費者(Consumer ID)

三者之間都是多對多的對應關系,三者之間的關系復雜而難以理解;對于中、大型企業客戶來說,每創建一個Topic,都要關聯或者更新Producer ID和Consumer ID,流程過于復雜。

因此,為進一步優化新用戶的體驗,降低新用戶的接入門檻,對資源申請的接入流程進行簡化。

  • 資源申請方面,主要包括以下兩個部分:
    • Topic管理(保持不變):

      Topic資源申請,一級消息類型,通過Topic對消息進行分類。

    • Group管理:
      • 取消原Producer ID的申請,與原Consumer ID統一為Group ID,即對應控制臺上,取消原生產者管理,與原消費者管理統一為Group管理
      • 取消原申請Producer ID或Consumer ID時需要指定Topic的關聯約束,只需申請Group ID即可在代碼中直接配置與Topic的關聯使用。
      • 兼容性相關問題:
        • 原申請的Producer ID列表將不再顯示,不影響當前業務的正常使用。
        • 原申請的以“CID-”或者“CID_”開頭的Consumer ID仍可以正常使用,代碼中既可在PropertyKeyConst.ConsumerId中設置,亦可在PropertyKeyConst.GROUP_ID中設置。
  • 針對示例代碼,原來已經在使用的Producer ID或者Consumer ID保持兼容,不影響當前在線業務的正常使用,但建議逐步替換為新的推薦配置方式:
    • 推薦方式:將Producer ID、Consumer ID的概念融合成Group ID
          // 設置PropertyKeyConst.GROUP_ID,原PropertyKeyConst.ProducerId和PropertyKeyConst.ConsumerId會被@Deprecated
          properties.put(PropertyKeyConst.GROUP_ID,"原CID-XXX或GID-XXX")。            
    • 兼容方式:Producer ID用來標識生產者,Consumer ID用來標識消費者
          // 創建Producer時需要配置PropertyKeyConst.ProducerId。
          properties.put(PropertyKeyConst.ProducerId,"原PID-XXX或GID-XXX")。
          // 創建Consumer時需要配置PropertyKeyConst.ConsumerId。
          properties.put(PropertyKeyConst.ConsumerId,"原CID-XXX或GID-XXX")。          

云消息隊列 RocketMQ 版的標準版實例支持HTTP協議,采用RESTful標準,方便易用,快速接入,跨網絡能力強,并隨之開放7種多語言客戶端。更多信息,請參見HTTP協議

RAM授權策略遷移

基于阿里云訪問控制的統一管理要求,云消息隊列 RocketMQ 版的主子賬號授權功能于2019年04月02日停止維護,請完成授權配置的遷移。

  • 建議您盡快開始RAM相關的策略配置,更多信息,請參見RAM主子賬號授權
  • 原來已經授權過的資源不會有任何影響,業務仍可正常使用,但是建議統一到RAM上進行配置與管理。