MongoDB veya Redis ile Data Transmission Service (DTS) değişiklik izleme özelliğini kullanarak yüksek güvenilirliğe ve düşük gecikme süresine sahip bir önbellek güncelleme ilkesi oluşturabilirsiniz. Bu örnekte kaynak olarak ApsaraDB RDS for MySQL ve hedef olarak Tair (Redis uyumlu) kullanılır.
Önkoşullar
Bir değişiklik izleme görevi yapılandırdınız ve bir tüketici grubu eklediniz. Daha fazla bilgi için bkz. ApsaraDB RDS for MySQL için değişiklik izleme görevi oluşturma ve Tüketici grubu ekleme.
-
Bir Tair (Redis uyumlu) örneği oluşturdunuz ve genel erişimi etkinleştirdiniz. Daha fazla bilgi için bkz. Adım 1: Örnek Oluşturma ve Genel Uç Nokta İsteme.
Notİstemci IP adresini veya CIDR bloğunu Tair örneğinin izin listesine eklemeniz gerekir. Daha fazla bilgi için bkz. İzin listesi yapılandırma.
Arka Plan
Uygulamalar, erişim hızını artırmak ve yüksek okuma eşzamanlılığını yönetmek için yaygın olarak bir önbellek katmanı ekler. Okuma isteklerini bellek içi okumalarla önbellekten karşılar; veri güncellemelerini ise ApsaraDB RDS for MySQL gibi dayanıklı bir veritabanına kalıcı olarak kaydeder. Önbellek güncelleme ilkesi, önbelleğin veritabanı ile senkronize kalmasını sağlar.
Yordam
İzlenen verileri tüketmek için IntelliJ IDEA'da SDK örnek kodunu çalıştırın.
Değişiklik izleme SDK demo paketini indirin ve paketi ayıklayın.
IntelliJ IDEA kullanarak ayıklanan SDK demo paketini bir Maven projesi olarak açın.
/subscribe-demo/src/main/java/com/alibaba/dts/demo/ dizininde DTSMySQL2RedisDemo.java dosyasına çift tıklayın.
-
main işlevindeki parametreleri değiştirin.
Kodda yeşil ile vurgulanan değerleri değiştirmeniz gerekir; örneğin
String brokerUrl = "your broker url";içindekiyour broker url.-
Değişiklik izleme parametreleri
Parametre
Açıklama
Kaynak
brokerUrlVeri Aboneliği örneğinin uç noktası ve bağlantı noktası numarası.
Not-
SDK istemcisini çalıştıran ECS örneği ile Veri Aboneliği örneği aynı klasik ağda veya Virtual Private Cloud (VPC) içindeyse, ağ gecikme süresini en aza indirmek için abonelik için dahili uç noktayı kullanmanızı öneririz.
Olası ağ kararsızlığı nedeniyle genel uç nokta kullanmanızı önermiyoruz.
DTS konsolunda hedef Veri Aboneliği örneğinin ID'sine tıklayın. Basic Information sayfasında, Network bölümünde uç nokta ve bağlantı noktası numarasını bulabilirsiniz.
topicÖrnek için abonelik konusu.
DTS konsolunda hedef Veri Aboneliği örneğinin ID'sine tıklayın. Basic Information sayfasında, Basic Information bölümünde Topic bilgisini alabilirsiniz.
sidTüketici grubunun ID'si.
DTS konsolunda hedef Veri Aboneliği örneğinin ID'sine tıklayın ve ardından Consume Data seçeneğine tıklayın. Tüketici grubunun Consumer Group ID ve Account bilgilerini alabilirsiniz.
NotTüketici grubu kullanıcı adı parolası, tüketici grubunu oluştururken belirtilir.
userNameTüketici grubu için kullanıcı adı.
UyarıBu konudaki istemciyi kullanmıyorsanız, kullanıcı adını
<Username>-<Consumer Group ID>biçiminde ayarlamanız gerekir. Örnek:dtstest-dtsaebpv. Aksi takdirde bağlantı başarısız olur.passwordKullanıcı adı parolası.
initCheckpointSDK istemcisinin veri tüketmeye başlayacağı UNIX zaman damgası olarak belirtilen tüketim kontrol noktası. Örnek: 1620962769.
NotTüketim kontrol noktası bilgilerini aşağıdaki senaryolarda kullanabilirsiniz:
-
Bir uygulama kesintisinden sonra veri kaybını önlemek ve tüketimi sürdürmek için bilinen son tüketim kontrol noktasını iletin.
-
İstemciyi başlatırken, belirli bir konumdan veri tüketmek için belirli bir tüketim kontrol noktası iletebilirsiniz.
Tüketim kontrol noktası, Veri Aboneliği örneğinin veri aralığı içinde olmalıdır (şekilde gösterildiği gibi) ve bir UNIX zaman damgasına dönüştürülmelidir.
NotUNIX zaman damgası dönüştürücüsü bulmak için bir arama motoru kullanabilirsiniz.
ConsumerContext.ConsumerSubscribeMode subscribeModeSDK istemcisinin kullanım modu. Geçerli değerler:
-
ConsumerContext.ConsumerSubscribeMode.ASSIGN: ASSIGN modu. Bir tüketici grubundaki yalnızca bir SDK istemcisi Veri Aboneliği verilerini tüketebilir. -
ConsumerContext.ConsumerSubscribeMode.SUBSCRIBE: SUBSCRIBE modu. Olağanüstü durum kurtarma için aynı tüketici grubunda birden çok SDK istemcisi başlatabilirsiniz.
Yok
-
-
Hedef Tair parametreleri
Parametre
Açıklama
Nasıl elde edilir
redisUrlTair örneğinin uç noktası.
Tair örneğinizin Connection Information sayfasına gidin. Connection Information bölümünde Public Access için endpoint adresini bulun.
redisPortTair örneğinin bağlantı noktası.
Tair örneğinizin Connection Information sayfasına gidin. Connection Information bölümünde Public Access için bağlantı noktasını bulun.
redisPasswordTair örneği için kullanıcı adı ve parola.
ÖnemliDeğer, <user>:<password> biçiminde bir dize olmalıdır. Örneğin, kullanıcı adınız
adminve parolanızRp829dlwaise bu parametreyiadmin:Rp829dlwaolarak ayarlayın.Bu değeri Tair örneğini oluştururken belirttiniz.
NotParolanızı unuttuysanız sıfırlayabilirsiniz. Daha fazla bilgi için bkz. Parola değiştirme veya sıfırlama.
-
IntelliJ IDEA'nın üst menü çubuğunda seçeneğine tıklayın.
Sonuçlar
-
Kaynak veritabanında oturum açın ve izlenen kaynak tabloya birkaç kayıt ekleyin.
Program, artımlı veri değişikliklerini tüketir ve ilgili verileri hedef veritabanına yazar.
-
Hedef veritabanında oturum açın ve verileri sorgulayın.
Sorgu, verilerin başarıyla yazıldığını doğrular.