全部產品
Search
文件中心

Data Transmission Service:RocketMQ訊息順序規則

更新時間:Mar 13, 2025

在使用Data Transmission Service將資料同步或遷移至雲訊息佇列 RocketMQ 版執行個體時,您可以調整訊息的順序規則,以提升同步或遷移執行個體的效能。本文為您介紹DTS支援的順序規則策略。

注意事項

若DTS執行個體目標雲訊息佇列 RocketMQ 版執行個體的規格發生變更(如升配或降配),則DTS執行個體的投遞順序可能會與變更前存在差異,且將持續按照變更後的投遞順序進行投遞。

策略說明

說明

雲訊息佇列 RocketMQ 版執行個體中,Shard、Partition、MessageQueue均代表訊息佇列。雲訊息佇列 RocketMQ 版的基本概念,請參見基本概念基本概念

策略名稱稱

說明

優缺點

按全域有序投遞

將所有資料和DDL資訊都投遞到目標Topic的Partition 0。

  • 優勢:所有對象的建立、更改順序都和源庫保持一致。

  • 缺點:效能一般。

按庫名 + 表名的 hash 值投遞

將庫名與表名合并作為Partition Key來計算Hash值,然後將各個表的資料和DDL資訊投遞到目標Topic中的各個Partition。

說明
  • 同一個表的資料和DDL資訊會投遞到同一個Partition。

  • 與表無關的DDL資訊(例如CREATE DATABASE)則投遞到Partition 0。

  • 優勢:單個表的建立、變更順序和源端保持一致,效能較好。

  • 缺點:由於不同的表投遞到不同的Partition,表與表之間的先後順序無法保證。

按指定列的 hash 值投遞

將表中的列(預設為主鍵,如果無主鍵則使用唯一鍵)作為Partition Key來計算Hash值,然後將不同的行投遞到目標Topic的各個Partition中。您也可以指定單個或多個列作為Partition Key來計算Hash值。

說明
  • 此策略下,DDL資訊預設投遞到目標Topic的Partition 0中。

  • 如果表沒有主鍵和唯一鍵,DTS會將其資料和DDL資訊都投遞到目標Topic的Partition 0。

  • 優勢:該策略效能最好。

  • 缺點:只能保證單條記錄的變更的先後順序,無主鍵表以及多張表之間的先後順序無法保證。

配置方法

您需要在配置DTS執行個體(資料同步或遷移)的對象配置階段,配置投遞到 RocketMQ 訊息順序規則