Fitur pelacakan perubahan dari Data Transmission Service (DTS) dapat digunakan bersama MongoDB atau Redis untuk mengimplementasikan kebijakan pembaruan cache yang andal dan berlatensi rendah. Topik ini menjelaskan kebijakan tersebut melalui contoh di mana ApsaraDB RDS for MySQL berperan sebagai sumber dan Tair (kompatibel dengan Redis) sebagai tujuan.
Prasyarat
Anda telah mengonfigurasi tugas pelacakan perubahan dan menambahkan kelompok konsumen. Untuk informasi selengkapnya, lihat Buat tugas pelacakan perubahan untuk ApsaraDB RDS for MySQL dan Tambahkan kelompok konsumen.
Instans Tair (Redis-compatible) telah dibuat dan akses publik telah diaktifkan. Untuk informasi selengkapnya, lihat Langkah 1: Buat Instans dan Ajukan Titik Akhir Publik.
CatatanAnda harus menambahkan alamat IP klien atau Blok CIDR ke daftar putih instans Tair. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih.
Latar Belakang
Lapisan cache sering ditambahkan ke arsitektur aplikasi untuk meningkatkan kecepatan akses dan menangani konkurensi baca yang tinggi. Permintaan baca diarahkan ke cache, yang memanfaatkan pembacaan memori guna meningkatkan kinerja. Sementara itu, pembaruan data disimpan ke database tahan lama seperti ApsaraDB RDS for MySQL untuk memastikan integritas data. Hal ini memerlukan kebijakan pembaruan cache agar cache tetap tersinkronisasi dengan database.
Prosedur
Bagian ini menjelaskan cara menjalankan kode contoh SDK di IntelliJ IDEA untuk mengonsumsi data yang dilacak.
Unduh paket demo SDK pelacakan perubahan dan ekstrak paket tersebut.
Gunakan IntelliJ IDEA untuk membuka paket demo SDK yang telah diekstrak sebagai proyek Maven.
Di direktori /subscribe-demo/src/main/java/com/alibaba/dts/demo/, klik ganda file DTSMySQL2RedisDemo.java.
Ubah parameter dalam fungsi main.
Anda perlu mengubah nilai yang disorot berwarna hijau dalam kode, seperti
your broker urlpadaString brokerUrl = "your broker url";.Parameter pelacakan perubahan
Parameter
Deskripsi
Sumber
brokerUrlTitik akhir dan nomor port instans Data Subscription.
Catatan-
Jika instans ECS yang menjalankan client SDK dan instans Data Subscription berada dalam jaringan klasik atau Virtual Private Cloud (VPC) yang sama, kami menyarankan Anda menggunakan titik akhir internal untuk langganan guna meminimalkan latensi jaringan.
-
Kami tidak menyarankan penggunaan titik akhir publik karena potensi ketidakstabilan jaringan.
Di Konsol DTS, klik ID instans Data Subscription yang dituju. Pada halaman Basic Information, Anda dapat memperoleh titik akhir dan nomor port di bagian Network.
topicTopik subscription untuk instans tersebut.
Di Konsol DTS, klik ID instans Data Subscription yang dituju. Pada halaman Basic Information, Anda dapat memperoleh Topic di bagian Basic Information.
sidID kelompok konsumen.
Di Konsol DTS, klik ID instans Data Subscription yang dituju, lalu klik Consume Data. Anda dapat memperoleh Consumer Group ID dan Account kelompok konsumen tersebut.
CatatanKata sandi untuk username kelompok konsumen ditentukan saat Anda membuat kelompok konsumen tersebut.
userNameUsername untuk kelompok konsumen.
PeringatanJika Anda tidak menggunakan client yang disediakan dalam topik ini, Anda harus menyetel username dalam format
<Username>-<Consumer Group ID>. Contoh:dtstest-dtsae******bpv. Jika tidak, koneksi akan gagal.passwordKata sandi untuk username tersebut.
initCheckpointTitik pemeriksaan konsumsi. Ini adalah stempel waktu UNIX tempat client SDK mulai mengonsumsi data. Nilainya harus berupa stempel waktu UNIX. Contoh: 1620962769.
CatatanAnda dapat menggunakan informasi titik pemeriksaan konsumsi dalam skenario berikut:
-
Untuk melanjutkan konsumsi dan mencegah kehilangan data setelah gangguan aplikasi, masukkan titik pemeriksaan konsumsi terakhir yang diketahui.
-
Saat memulai client, Anda dapat memasukkan titik pemeriksaan konsumsi tertentu untuk mengonsumsi data dari posisi yang diinginkan.
Titik pemeriksaan konsumsi harus berada dalam rentang data instans Data Subscription (seperti yang ditunjukkan pada gambar) dan harus dikonversi ke stempel waktu UNIX.
CatatanAnda dapat menggunakan mesin pencari untuk menemukan konverter stempel waktu UNIX.
ConsumerContext.ConsumerSubscribeMode subscribeModeMode penggunaan client SDK. Nilai yang valid:
-
ConsumerContext.ConsumerSubscribeMode.ASSIGN: mode ASSIGN. Hanya satu client SDK dalam satu kelompok konsumen yang dapat mengonsumsi data Data Subscription. -
ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE: mode SUBSCRIBE. Anda dapat menjalankan beberapa client SDK dalam kelompok konsumen yang sama untuk disaster recovery.
N/A
-
Parameter Tair tujuan
Parameter
Deskripsi
Cara memperoleh
redisUrlTitik akhir instans Tair.
Buka halaman Connection Information instans Tair Anda. Di bagian Connection Information, temukan endpoint untuk Public Access.
redisPortPort instans Tair.
Buka halaman Connection Information instans Tair Anda. Di bagian Connection Information, temukan port untuk Public Access.
redisPasswordUsername dan kata sandi untuk instans Tair.
PentingNilainya harus berupa string dalam format <user>:<password>. Misalnya, jika username Anda adalah
admindan kata sandi Anda adalahRp829dlwa, setel parameter ini menjadiadmin:Rp829dlwa.Anda menentukan nilai ini saat membuat instans Tair.
CatatanJika Anda lupa kata sandi, Anda dapat mengatur ulang. Untuk informasi selengkapnya, lihat Ubah atau atur ulang kata sandi.
Pada bilah menu atas IntelliJ IDEA, klik .
Hasil
Login ke database sumber dan masukkan beberapa catatan ke tabel sumber yang dilacak.
Program mengonsumsi perubahan data inkremental dan menulis data yang sesuai ke database tujuan.
Login ke database tujuan dan kueri data tersebut.
Kueri tersebut mengonfirmasi bahwa data berhasil ditulis.