Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Anında iletme modeli veya çekme modeli kullanarak Azure Cosmos DB değişiklik akışıyla çalışabilirsiniz. Bir 'push' modeliyle, değişiklik beslemesi işlemcisi işlemek için iş mantığı olan bir istemciye işi gönderir. Ancak, iş kontrolü ve son işlenen iş için durumun depolanması karmaşıklığı, değişiklik akışı işlemcisi içinde ele alınır.
Çekme modeliyle istemcinin işi sunucudan çekmesi gerekir. Bu durumda, istemcinin yalnızca işi gerçekleştirmek için işleme mantığı yoktur; aynı zamanda son işlenen işin durumunu depolamak, çok sayıda istemci arasında paralel işlem yük dengelemesi yapmak ve hataları işlemek için de iş mantığı vardır.
Azure Cosmos DB değişiklik akışından okurken, şu konularda endişelenmeniz gerekmediğinden genellikle anında iletme modeli kullanmanızı öneririz:
- Gelecekteki değişiklikler için değişiklik akışını yoklama.
- Son işlenen değişiklik için durum bilgisini saklama. Değişiklik akışı işlemcisinden okursanız, durum otomatik olarak bir lease container (kira kapsayıcısı) içerisinde depolanır.
- Değişiklikleri kullanan birden çok istemci arasında yük dengeleme. Örneğin, bir istemci değişiklikleri işlemeye ayak uyduramıyorsa ve başka bir istemci kullanılabilir kapasiteye sahipse.
- Hataları işleme. Örneğin, kodda işlenmeyen bir özel durum veya geçici bir ağ sorunundan sonra doğru şekilde işlenmeyen başarısız değişiklikleri otomatik olarak yeniden deneme.
Azure Cosmos DB değişiklik akışını kullanan senaryoların çoğu, gönderme modeli seçeneklerinden birini kullanır. Ancak, çekme modelinin daha düşük düzeyli denetimini isteyebileceğiniz bazı senaryolar vardır. Bunlar şunları içerir:
- Belirli bir bölüm anahtarındaki değişiklikleri okuma.
- İstemcinizin işleme için değişiklik alma hızını denetleme.
- Değişiklik akışındaki mevcut verilerin tek seferlik okunmasını yapma (örneğin, veri geçişi yapmak için).
Anında iletme modeliyle değişiklik akışını okuma
Itme modeli kullanmak, değişiklik akışından okumanın en kolay yoludur. Anında iletme modeliyle değişiklik akışından okumanın iki yolu vardır: Azure İşlevleri tetikleyicileri ve değişiklik akışı işlemcisi. Azure İşlevleri arka planda değişiklik akışı işlemcisini kullandığından, bunların ikisi de değişiklik akışını okumanın benzer yollarıdır. Azure İşlevleri'ni, değişiklik akışı işlemcisi için bir barındırma platformu olarak, değişiklik akışını okumanın tamamen farklı bir yolu olarak değil, düşünün.
Azure İşlevleri
Değişiklik akışını kullanmaya yeni başlıyorsanız Azure İşlevleri en basit seçenektir. Basitliği nedeniyle, çoğu değişiklik akışı kullanım örneği için de önerilen seçenektir. Azure Cosmos DB için bir Azure İşlevleri tetikleyicisi oluşturduğunuzda, bağlanacak kapsayıcıyı seçersiniz ve kapsayıcıda bir değişiklik olduğunda Azure İşlevi tetiklenir. Azure İşlevleri arka planda değişiklik akışı işlemcisini kullandığından, kapsayıcınızın bölümleri arasında değişiklik işlemeyi otomatik olarak paralelleştirir.
Azure İşlevleri ile geliştirme kolay bir deneyimdir ve değişiklik akışı işlemcisini kendi başınıza dağıtmaktan daha hızlı olabilir. Tetikleyiciler Azure İşlevleri portalı kullanılarak veya SDK'lar kullanılarak program aracılığıyla oluşturulabilir. Visual Studio ve VS Code, Azure İşlevleri yazma desteği sağlar ve hatta platformlar arası geliştirme için Azure İşlevleri CLI'sini bile kullanabilirsiniz. Masaüstünüzde kodu yazabilir ve hatalarını ayıklayabilir ve ardından işlevi tek bir düğmeyle dağıtabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İşlevleri kullanarak sunucusuz veritabanı bilgi işlemi ve Azure İşlevleri ile değişiklik akışını kullanma.
Akış işlemci kitaplığını değiştirme
Desteklenen SDK’lar
| .NET V3 | Java | Node.JS | Python |
|---|---|---|---|
| ✓ | ✓ | ✕ | ✕ |
Değişiklik akışı işlemcisi, değişiklik akışı üzerinde daha fazla denetim sağlar ve en karmaşıklığı gizlemeye devam eder. Değişiklik akışı işlemci kitaplığı, işleme işlevinizin kitaplık tarafından çağrıldığı gözlemci desenini izler. Değişiklik akışı işlemcisi değişiklikleri otomatik olarak denetler ve değişiklik bulunursa bunları istemciye iletir . Yüksek aktarım hızı değişiklik akışınız varsa, değişiklik akışını okumak için birden çok istemci örneği oluşturabilirsiniz. Değişiklik akışı işlemcisi yükü otomatik olarak farklı istemciler arasında böler. Birden çok istemcide yük dengeleme için herhangi bir mantık veya kiralama durumunu korumak için herhangi bir mantık uygulamanız gerekmez.
Değişiklik akışı işlemcisi, tüm değişikliklerin en az bir kez teslimini garanti eder. Başka bir deyişle, değişiklik akışı işlemcisini kullanırsanız, işleme işleviniz değişiklik akışındaki her öğe için başarıyla çağrılır. İşleme işlevinizde iş mantığında işlenmeyen bir özel durum varsa, başarısız değişiklikler başarıyla işlenene kadar yeniden deneniyor. Değişiklik akışı işlemcinizin aynı değişiklikleri sürekli yeniden denerken takılmasını önlemek için, işleme işlevinize bir hata durumunda belgeleri hata mesaj kuyruğuna yazmak için mantık ekleyin. Daha fazla bilgi edinmek için bkz. Hata işleme.
Azure İşlevleri'nde hataları işleme önerisi aynıdır. Yine de, özel durumlarda belgeleri ölü-mektup kuyruğuna yazmak için temsilci kodunuza mantık eklemeniz gerekir. Ancak, Azure İşlevinizde işlenmeyen bir özel durum varsa, özel durumu oluşturan değişiklik otomatik olarak yeniden denenemez. İş mantığında işlenmeyen bir özel durum varsa, Azure İşlevi sonraki değişikliği işlemeye geçer. Azure İşlevi aynı başarısız değişikliği yeniden denemez.
Azure İşlevleri gibi değişiklik akışı işlemci kitaplığıyla geliştirme de kolaydır. Ancak, değişiklik akış işlemcisi için bir veya daha fazla host dağıtmak sizin sorumluluğunuzdadır. Ana bilgisayar, değişiklikleri dinlemek için değişiklik akışı işlemcisini kullanan bir uygulama örneğidir. Azure İşlevleri otomatik ölçeklendirme özelliklerine sahip olsa da konaklarınızı ölçeklendirmek sizin sorumluluğunuzdadır. Daha fazla bilgi edinmek için bkz. Değişiklik akışı işlemcisini kullanma. Değişiklik akışı işlemci kitaplığı , Azure Cosmos DB SDK V3'ün bir parçasıdır.
Çekme modeliyle değişiklik akışını okuma
Değişiklik akışı çekme modeli, değişiklik akışını kendi hızınızda kullanmanıza olanak tanır. Değişiklikler istemci tarafından istenmelidir ve değişiklikler için otomatik yoklama yoktur. Son işlenen değişikliği kalıcı olarak yer işaretiyle işaretlemek istiyorsanız (push modelinin kira kapsayıcısına benzer), bir devamlılık belirteci kaydetmeniz gerekir.
Değişiklik akışı çekme modelini kullanarak değişiklik akışında daha düşük düzeyde denetim elde edersiniz. Çekme modeliyle değişiklik akışını okurken üç seçeneğiniz vardır:
- Kapsayıcının tamamı için değişiklikleri okuyun.
- Belirli bir FeedRange için değişiklikleri okuyun.
- Belirli bir bölüm anahtarı değeri için değişiklikleri okuyun.
Değişiklik akışı işlemcisinde olduğu gibi, değişikliklerin birden çok istemcide işlenmesini paralel hale getirebilirsiniz. Ancak, çekme modeli istemciler arasında yük dengelemeyi otomatik olarak işlemez. Değişiklik akışının işlenmesini paralelleştirmek için çekme modelini kullandığınızda, önce FeedRanges listesini alırsınız. FeedRange, bir bölüm anahtarı değerleri aralığını kapsar. FeedRanges'ı edinen ve makineleriniz arasında dağıtan bir düzenleyici işleminiz olması gerekir. Daha sonra, birden çok makinenin değişiklik akışını paralel olarak okumasını sağlamak için bu FeedRanges'leri kullanabilirsiniz.
Çekme modeliyle en az bir kez yerleşik teslim garantisi yoktur. Çekme modeli, hataları nasıl işlemek istediğinize karar vermek için düşük düzeyli denetim sağlar.
Cassandra ve MongoDB API'lerinde değişiklik akışı
Değişiklik akışı işlevi, MongoDB için API'de değişiklik akışları olarak görünür hale getirilir ve Cassandra için API'de koşuluyla sorgu yapılır. MongoDB API'sinin uygulama ayrıntıları hakkında daha fazla bilgi edinmek için bkz. MongoDB için Azure Cosmos DB API'sinde akışları değiştirme.
Yerel Apache Cassandra, değişiklik veri yakalama (CDC) adı verilen bir mekanizma sağlar; bu mekanizma belirli tabloları arşivleme amacıyla işaretler ve CDC günlüğü için yapılandırılabilir bir disk boyutuna ulaşıldığında bu tablolara yazma işlemlerini engeller. Apache Cassandra için Azure Cosmos DB'deki değişiklik akışı özelliği, CQL aracılığıyla koşul ile değişiklikleri sorgulama özelliğini geliştirir. Uygulama ayrıntıları hakkında daha fazla bilgi edinmek için bkz . Apache Cassandra için Azure Cosmos DB'de değişiklik akışı.