Aracılığıyla paylaş


Azure Cosmos DB tümleşik önbelleğini yapılandırma

UYGULANANLAR: NoSQL

Bu makalede ayrılmış bir ağ geçidi sağlama, tümleşik önbelleği yapılandırma ve uygulamanızı bağlama işlemleri açıklanmaktadır.

Önkoşullar

Ayrılmış ağ geçidini sağlama

  1. Azure portalında bir Azure Cosmos DB hesabına gidin ve Ayrılmış Ağ Geçidi sekmesini seçin.

    Azure Cosmos DB ayrılmış ağ geçidi sekmesine nasıl gidildiğini gösteren Azure portalının ekran görüntüsü.

  2. Ayrılmış ağ geçidi formunu aşağıdaki ayrıntılarla doldurun:

    • Ayrılmış Ağ Geçidi - Sağlanan'a geçiş düğmesini açın.
    • SKU - Gerekli işlem ve bellek boyutuna sahip bir SKU seçin. Tümleşik önbellek belleğin yaklaşık %50'sini kullanır ve kalan bellek meta veriler ve istekleri arka uç bölümlerine yönlendirmek için kullanılır.
    • Örnek sayısı - Düğüm sayısı. Geliştirme amacıyla D4 boyutunda bir düğümle başlamanızı öneririz. Önbelleğe almanız gereken veri miktarına bağlı olarak ve yüksek kullanılabilirlik elde etmek için ilk testten sonra düğüm boyutunu artırabilirsiniz.

    Ayrılmış ağ geçidi kümesi oluşturmaya yönelik örnek giriş ayarlarını gösteren Azure portalı ayrılmış ağ geçidi sekmesinin ekran görüntüsü.

  3. Kaydet'i seçin ve ayrılmış ağ geçidi sağlama işleminin tamamlanması için yaklaşık 5-10 dakika bekleyin. Sağlama tamamlandığında aşağıdaki bildirimi görürsünüz:

    Azure portalında ayrılmış ağ geçidi sağlamanın tamam olup olmadığını denetlemeyi gösteren bildirimin ekran görüntüsü.

Tümleşik önbelleği yapılandırma

Ayrılmış bir ağ geçidi oluşturduğunuzda, tümleşik önbellek otomatik olarak sağlanır.

  1. Uygulamanızın bağlantı dizesi yeni ayrılmış ağ geçidi uç noktasını kullanacak şekilde değiştirin.

    Güncelleştirilmiş ayrılmış ağ geçidi bağlantı dizesi Anahtarlar dikey penceresindedir:

    Ayrılmış ağ geçidi bağlantı dizesi ile Azure portalı anahtarları sekmesinin ekran görüntüsü.

    Tüm ayrılmış ağ geçidi bağlantı dizesi aynı deseni izler. Özgün bağlantı dizesi kaldırın documents.azure.com ve ile sqlx.cosmos.azure.comdeğiştirin. Ayrılmış ağ geçidini kaldırıp yeniden oluştursanız bile her zaman aynı bağlantı dizesi sahip olur.

    Aynı Azure Cosmos DB hesabını kullanarak tüm uygulamalarda bağlantı dizesi değiştirmeniz gerekmez. Örneğin, ağ geçidi modunu ve ayrılmış ağ geçidi uç noktasını kullanırken diğerinde doğrudan modu kullanan bir CosmosClientCosmosClient bağlantınız olabilir. Başka bir deyişle, ayrılmış ağ geçidi eklemek Azure Cosmos DB'ye bağlanmanın mevcut yollarını etkilemez.

  2. .NET veya Java SDK kullanıyorsanız bağlantı modunu ağ geçidi moduna ayarlayın. Python ve Node.js SDK'ları için bu adım gerekli değildir çünkü ağ geçidi modunun yanı sıra başka bağlanma seçenekleri yoktur.

Not

En son .NET veya Java SDK sürümünü kullanıyorsanız, varsayılan bağlantı modu doğrudan moddur. Tümleşik önbelleği kullanmak için bu varsayılanı geçersiz kılmanız gerekir.

İstek tutarlılığını ayarlama

İstek tutarlılığının oturum veya nihai olduğundan emin olmanız gerekir. Aksi takdirde, istek her zaman tümleşik önbelleği atlar. Tüm okuma işlemleri için belirli bir tutarlılığı yapılandırmanın en kolay yolu bunu hesap düzeyinde ayarlamaktır. Tutarlılığı istek düzeyinde de yapılandırabilirsiniz. Bu, okumalarınızın yalnızca bir alt kümesinin tümleşik önbelleği kullanmasını istiyorsanız önerilir.

Not

Python SDK'sını kullanıyorsanız, her istek için tutarlılık düzeyini açıkça ayarlamanız gerekir . Varsayılan hesap düzeyi ayarı otomatik olarak uygulanmaz.

MaxIntegratedCacheStaleness ayarını yapın

eski önbelleğe alınmış verileri tolere etmek istediğiniz en uzun süre olan öğesini yapılandırın MaxIntegratedCacheStaleness. Yinelenen nokta okumalarının ve sorguların MaxIntegratedCacheStaleness önbellek isabetleri olma olasılığını artıracağından mümkün olduğunca yüksek olarak ayarlanması önerilir. 0 olarak ayarlarsanızMaxIntegratedCacheStaleness, tutarlılık düzeyinden bağımsız olarak okuma isteğiniz hiçbir zaman tümleşik önbelleği kullanmaz. Yapılandırılmadığında varsayılan MaxIntegratedCacheStaleness değer 5 dakikadır.

Not

MaxIntegratedCacheStaleness 10 yıla kadar ayarlanabilir. Uygulamada bu değer maksimum eskime süresidir ve düğüm yeniden başlatmaları nedeniyle önbellek daha erken sıfırlanabilir.

ayarının ayarlanması MaxIntegratedCacheStaleness her SDK'nın şu sürümlerinde desteklenir:

SDK Desteklenen sürümler
.NET SDK v3 >= 3.30.0
Java SDK v4 >= 4.34.0
Node.js SDK’sı >=3.17.0
Python SDK'sı >=4.3.1
FeedIterator<MyClass> myQuery = container.GetItemQueryIterator<MyClass>(new QueryDefinition("SELECT * FROM c"), requestOptions: new QueryRequestOptions
        {
            DedicatedGatewayRequestOptions = new DedicatedGatewayRequestOptions 
            { 
                MaxIntegratedCacheStaleness = TimeSpan.FromMinutes(30) 
            }
        }
);

Tümleşik önbelleği atlama

Hangi isteklerin BypassIntegratedCache tümleşik önbelleği kullandığını denetlemek için istek seçeneğini kullanın. Tümleşik önbelleği atlayan yazma işlemleri, nokta okumaları ve sorgular önbellek depolama alanını kullanmaz ve diğer öğeler için alan tasarrufu sağlar. Önbelleği atlayan istekler hala ayrılmış ağ geçidi üzerinden yönlendirilir. Bu istekler arka uçtan ve maliyet RU'larından sunulur.

Önbelleğin atlanması her SDK'nın şu sürümlerinde desteklenir:

SDK Desteklenen sürümler
.NET SDK v3 >= 3.39.0
Java SDK v4 >= 4.49.0
Node.js SDK’sı Desteklenmez
Python SDK'sı Desteklenmez
FeedIterator<MyClass> myQuery = container.GetItemQueryIterator<MyClass>(new QueryDefinition("SELECT * FROM c"), requestOptions: new QueryRequestOptions
        {
            DedicatedGatewayRequestOptions = new DedicatedGatewayRequestOptions 
            { 
                BypassIntegratedCache = true
            }
        }
);

Önbellek isabetlerini doğrulama

Son olarak, istek ücretinin 0 olup olmadığını görerek uygulamanızı yeniden başlatabilir ve yinelenen nokta okumaları veya sorguları için tümleşik önbellek isabetlerini doğrulayabilirsiniz. Ayrılmış ağ geçidi uç noktasını kullanmak üzere öğesini CosmosClient değiştirdikten sonra, tüm istekler ayrılmış ağ geçidi üzerinden yönlendirilir.

Bir okuma isteğinin (nokta okuma veya sorgu) tümleşik önbelleği kullanabilmesi için aşağıdaki ölçütlerin tümü doğru olmalıdır:

  • İstemciniz ayrılmış ağ geçidi uç noktasına bağlanır
  • İstemciniz ağ geçidi modunu kullanıyor (Python ve Node.js SDK'lar her zaman ağ geçidi modunu kullanır)
  • İsteğin tutarlılığı oturum veya nihai olarak ayarlanmalıdır

Not

Tümleşik önbellek hakkında geri bildiriminiz var mı? Duymak istiyoruz! Geri bildirimleri doğrudan Azure Cosmos DB mühendislik ekibiyle paylaşmaktan çekinmeyin: cosmoscachefeedback@microsoft.com

Sonraki adımlar