すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:変更追跡機能を使用してキャッシュ更新ポリシーを構成する

最終更新日:Jan 23, 2025

Data Transmission Service (DTS) の変更追跡機能は、ApsaraDB for MongoDBおよびApsaraDB for Redisと連携して、高信頼性、低遅延のキャッシュ更新ポリシーを実装できます。 このトピックでは、キャッシュ更新ポリシーを設定する方法について説明します。 次の例では、ソースデータベースはApsaraDB RDS for MySQLインスタンスで、ターゲットデータベースはApsaraDB for Redisインスタンスです。

前提条件

背景情報

ビジネスへのアクセスを高速化し、同時読み取りパフォーマンスを向上させるために、キャッシュ層がビジネスアーキテクチャに組み込まれています。 読み取り要求は、キャッシュ層にルーティングされる。 キャッシュ層のメモリ読み出し機構は、読み出し性能を向上させる。 データの整合性を確保するため、更新されたビジネスデータはApsaraDB RDS for MySQLに保持されます。 この場合、キャッシュ更新ポリシーを設定して、ビジネスデータが更新されたときにキャッシュデータが更新されるようにすることができます。

手順

次の例では、IntelliJ IDEAとSDKデモコードを使用して、追跡データを使用する方法を示します。

  1. SDKデモパッケージをダウンロードし、パッケージを解凍します。

  2. IntelliJ IDEAを使用して、解凍されたSDKデモパッケージをMavenプロジェクトで開きます。

  3. /subscribe-demo/src/main/java/com/alibaba/dts/demo/ パスで、DTSMySQL2RedisDemo.javaファイルをダブルクリックします。

  4. main関数のパラメーターを変更します。

    次の図では、緑色の値を変更する必要があります。 たとえば、String brokerUrl = "your broker url"; パラメーターのyour broker urlを変更する必要があります。image.png

    • 追跡タスクパラメーターの変更

      パラメーター

      説明

      パラメータ値を取得するメソッド

      brokerUrl

      変更追跡インスタンスのエンドポイントとポート番号。

      説明
      • 内部ネットワーク上のデータ変更を追跡する場合、ネットワーク遅延は最小限に抑えられます。 これは、SDKクライアントをデプロイするElastic Compute Service (ECS) インスタンスがクラシックネットワーク上にある場合、または変更追跡インスタンスと同じ仮想プライベートクラウド (VPC) にある場合に適用されます。

      • パブリックエンドポイントを使用しないことを推奨します。

      DTSコンソールの [変更トラッキング] ページで、管理する変更トラッキングインスタンスを見つけ、インスタンスIDをクリックします。 左側のウィンドウで、基本情報 タブをクリックして、ネットワーク セクションで変更追跡インスタンスのエンドポイントとポート番号を取得します。

      トピック

      変更追跡インスタンスの追跡対象トピックの名前。

      DTSコンソールの [変更トラッキング] ページで、管理する変更トラッキングインスタンスを見つけ、インスタンスIDをクリックします。 左側のウィンドウで、基本情報 タブをクリックして、基本情報 セクションで追跡対象のトピックの名前を取得します。

      sid

      消費者グループID。

      DTSコンソールの [変更トラッキング] ページで、管理する変更トラッキングインスタンスを見つけ、インスタンスIDをクリックします。 左側のウィンドウで、データ消費 タブをクリックして、コンシューマーグループ ID /名前アカウント 情報を表示します。

      説明

      消費者グループアカウントのパスワードは、消費者グループの作成時に指定します。

      userName

      消費者グループアカウントのユーザー名。

      警告

      このトピックで説明するSDKクライアントを使用していない場合は、このパラメーターを <Username>-<Consumer group ID> の形式で指定する必要があります。 例: dtstest-dtsae ****** bpv そうしないと、接続は失敗します。

      パスワード

      消費者グループアカウントのパスワード。

      initCheckpoint

      コンシューマオフセット。SDKクライアントが最初のデータレコードを消費したときに生成されるタイムスタンプです。 この値は UNIX タイムスタンプです。 例: 1620962769。

      説明

      コンシューマオフセットは、次のシナリオで使用できます。

      • 消費プロセスが中断された場合、消費者オフセットを指定してデータ消費を再開できます。 これにより、データの損失を防ぎます。

      • 変更追跡クライアントを起動するときに、ビジネス要件に基づいてデータを消費するための消費者オフセットを指定できます。

      消費されたデータの消費者オフセットは、変更追跡インスタンスのデータ範囲内でなければなりません。 コンシューマオフセットは、UNIXタイムスタンプに変換する必要があります。

      説明
      • 変更トラッキングページの データ範囲 列に変更トラッキングインスタンスのデータ範囲を表示できます。

      • 検索エンジンを使用して、UNIXタイムスタンプコンバーターを取得できます。

      ConsumerContext.ConsumerSubscribeMode

      SDKクライアントを使用するモード。 有効な値:

      • ConsumerContext.ConsumerSubscribeMode.ASSIGN: ASSIGNモードでは、コンシューマグループ内で1つのSDKクライアントのみを起動して、追跡データを消費できます。

      • ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE: SUBSCRIBEモードでは、冗長性を高めるために、1つのコンシューマーグループ内の複数のSDKクライアントを一度に起動できます。

      非該当

    • ApsaraDB for Redisインスタンスパラメーター

      パラメーター

      説明

      パラメータ値を取得するメソッド

      redisUrl

      ApsaraDB for Redisインスタンスのエンドポイント。

      ApsaraDB for Redisインスタンスの [インスタンス情報] タブで、[接続情報] セクションを見つけ、ApsaraDB for Redisインスタンスのエンドポイント[パブリックアクセス] 行に表示します。

      redisPort

      ApsaraDB for Redisインスタンスのポート番号。

      ApsaraDB for Redisインスタンスの [インスタンス情報] タブで、[接続情報] セクションを見つけ、ApsaraDB for Redisインスタンスのポート番号[パブリックアクセス] 行に表示します。

      redisPassword

      ApsaraDB for Redisアカウントのユーザー名とパスワード。

      重要

      データベースのパスワードは <user >:< password> 形式です。 たとえば、ソースApsaraDB For Redisインスタンスへのログインに使用するアカウントのユーザー名がadminで、パスワードがRp829dlwaの場合、データベースのパスワードはadmin:Rp829dlwaです。

      ユーザー名とパスワードは、ApsaraDB for Redisインスタンスの作成時に指定されます。

      説明

      パスワードを忘れた場合は、パスワードをリセットできます。 詳細については、「パスワードの変更またはリセット」をご参照ください。

  5. IntelliJ IDEAの上部メニューバーで、[実行] > [実行] を選択してプログラムを実行します。

結果

  1. ソースデータベースにログインし、変更追跡タスクのソーステーブルに複数のデータエントリを挿入します。

    結果は、プログラムがデータの変更を追跡し、増分データを宛先データベースに書き込むことを示しています。

    Redis缓存代码运行结果

  2. ターゲットデータベースにログインし、データを照会します。

    結果は、増分データがターゲットデータベースに書き込まれたことを示しています。

    Query result for the Redis database