Data Transmission Service (DTS) の変更追跡機能は、ApsaraDB for MongoDBおよびApsaraDB for Redisと連携して、高信頼性、低遅延のキャッシュ更新ポリシーを実装できます。 このトピックでは、キャッシュ更新ポリシーを設定する方法について説明します。 次の例では、ソースデータベースはApsaraDB RDS for MySQLインスタンスで、ターゲットデータベースはApsaraDB for Redisインスタンスです。
前提条件
変更追跡タスクが設定され、コンシューマグループが追加されます。 詳細については、「ApsaraDB RDS For MySQLインスタンスからのデータ変更の追跡」および「コンシューマーグループの作成」をご参照ください。
インターネットにアクセスできるApsaraDB for Redisインスタンスが作成されました。 詳細については、「手順1: インスタンスの作成」および「ApsaraDB For Redisインスタンスのパブリックエンドポイントの申請」をご参照ください。
説明ApsaraDB for RedisインスタンスのホワイトリストにクライアントIPアドレスまたはCIDRブロックを追加する必要があります。 詳細については、「ホワイトリストの設定」をご参照ください。
背景情報
ビジネスへのアクセスを高速化し、同時読み取りパフォーマンスを向上させるために、キャッシュ層がビジネスアーキテクチャに組み込まれています。 読み取り要求は、キャッシュ層にルーティングされる。 キャッシュ層のメモリ読み出し機構は、読み出し性能を向上させる。 データの整合性を確保するため、更新されたビジネスデータはApsaraDB RDS for MySQLに保持されます。 この場合、キャッシュ更新ポリシーを設定して、ビジネスデータが更新されたときにキャッシュデータが更新されるようにすることができます。
手順
次の例では、IntelliJ IDEAとSDKデモコードを使用して、追跡データを使用する方法を示します。
SDKデモパッケージをダウンロードし、パッケージを解凍します。
IntelliJ IDEAを使用して、解凍されたSDKデモパッケージをMavenプロジェクトで開きます。
/subscribe-demo/src/main/java/com/alibaba/dts/demo/ パスで、DTSMySQL2RedisDemo.javaファイルをダブルクリックします。
main関数のパラメーターを変更します。
次の図では、緑色の値を変更する必要があります。 たとえば、
String brokerUrl = "your broker url";パラメーターのyour broker urlを変更する必要があります。
追跡タスクパラメーターの変更
パラメーター
説明
パラメータ値を取得するメソッド
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.ConsumerSubscribeModeSDKクライアントを使用するモード。 有効な値:
ConsumerContext.ConsumerSubscribeMode.ASSIGN: ASSIGNモードでは、コンシューマグループ内で1つのSDKクライアントのみを起動して、追跡データを消費できます。ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE: SUBSCRIBEモードでは、冗長性を高めるために、1つのコンシューマーグループ内の複数のSDKクライアントを一度に起動できます。
非該当
ApsaraDB for Redisインスタンスパラメーター
パラメーター
説明
パラメータ値を取得するメソッド
redisUrlApsaraDB for Redisインスタンスのエンドポイント。
ApsaraDB for Redisインスタンスの [インスタンス情報] タブで、[接続情報] セクションを見つけ、ApsaraDB for Redisインスタンスのエンドポイントを [パブリックアクセス] 行に表示します。
redisPortApsaraDB for Redisインスタンスのポート番号。
ApsaraDB for Redisインスタンスの [インスタンス情報] タブで、[接続情報] セクションを見つけ、ApsaraDB for Redisインスタンスのポート番号を [パブリックアクセス] 行に表示します。
redisPasswordApsaraDB for Redisアカウントのユーザー名とパスワード。
重要データベースのパスワードは <user >:< password> 形式です。 たとえば、ソースApsaraDB For Redisインスタンスへのログインに使用するアカウントのユーザー名がadminで、パスワードがRp829dlwaの場合、データベースのパスワードはadmin:Rp829dlwaです。
ユーザー名とパスワードは、ApsaraDB for Redisインスタンスの作成時に指定されます。
説明パスワードを忘れた場合は、パスワードをリセットできます。 詳細については、「パスワードの変更またはリセット」をご参照ください。
IntelliJ IDEAの上部メニューバーで、 を選択してプログラムを実行します。
結果
ソースデータベースにログインし、変更追跡タスクのソーステーブルに複数のデータエントリを挿入します。
結果は、プログラムがデータの変更を追跡し、増分データを宛先データベースに書き込むことを示しています。

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