Azure Cosmos DB Cassandra API bir hesabı ölçeklendirin
Uygulama hedefı:
Cassandra API
cassandra için Azure Cosmos DB apı 'sinin elastik yapısını keşfetmeye yönelik çeşitli seçenekler vardır. Azure Cosmos DB etkin bir şekilde ölçeklendirmenin nasıl yapılacağını anlamak için, sisteminizdeki performans taleplerini hesaba eklemek üzere doğru istek birimi (RU/sn) miktarına nasıl sağlanacağını anlamak önemlidir. İstek birimleri hakkında daha fazla bilgi için bkz. İstek birimleri makalesi.
Cassandra API için, .net ve Java SDK'larını kullanarak tekil sorgular Için istek birimi ücreti alabilirsiniz. Bu, hizmette sağlamanız gereken RU/sn miktarını belirlemede yararlı olacaktır.
İşleme hızı sınırlaması (429 hata)
Azure Cosmos DB, istemciler sağladığınız miktardan daha fazla kaynak (RU/sn) kullanıyorsa, oran-limited (429) hata döndürür. Azure Cosmos DB Cassandra API, bu özel durumları cassandra native protokolünde aşırı yüklenmiş hatalara dönüştürür.
Sisteminiz gecikme süresine duyarlı değilse, yeniden denemeler kullanılarak üretilen iş hızı oranını işlemek yeterli olabilir. Hız sınırlaması saydam olarak nasıl ele alınacağını öğrenmek için bkz. sürüm 3 ve Apache Cassandra Java sürücülerinin sürüm 4 için Java kod örnekleri. Bu örnekler, Java 'da varsayılan Cassandra yeniden deneme ilkesinin özel bir sürümünü uygular. Aynı zamanda Spark uzantısını , hız sınırını işlemek için de kullanabilirsiniz. Spark kullanırken Spark Bağlayıcısı üretilen iş yapılandırmasını iyileştirirkenkılavuzumuzu izlediğinizden emin olun.
Ölçeklendirmeyi Yönet
Gecikme süresini en aza indirmek isterseniz, Cassandra API ölçek ve sağlama aktarım hızını (ru) yönetmek için kullanabileceğiniz bir seçenek yelpazesi vardır:
- Azure portal kullanarak el ile
- Denetim düzlemi özelliklerini kullanarak program aracılığıyla
- Belirli bir SDK ile CQL komutlarını kullanarak programlama yoluyla
- Otomatik ölçeklendirme kullanarak dinamik olarak
Aşağıdaki bölümlerde her yaklaşımın avantajları ve dezavantajları açıklanmaktadır. Daha sonra, çözümünüzün ölçeklendirme ihtiyaçlarını, genel maliyet ve gereksinimlerinize yönelik verimlilik ihtiyaçlarını dengelemek için en iyi stratejiye karar verebilirsiniz.
Azure portal kullanın
Azure Cosmos DB Cassandra API hesabındaki kaynakları Azure portal kullanarak ölçeklendirebilirsiniz. Daha fazla bilgi edinmek için kapsayıcılar ve veritabanlarında üretilen Iş sağlamabaşlıklı makaleye bakın. Bu makalede, Azure portal veritabanı ya da kapsayıcı düzeyinde üretilen işi ayarlamanın göreli avantajları açıklanmaktadır. Bu makalelerde bahsedilen "veritabanı" ve "kapsayıcı" terimleri, Cassandra API için sırasıyla "keyspace" ve "Table" ile eşlenir.
Bu yöntemin avantajı, veritabanında üretilen iş kapasitesini yönetmenin kolay bir anahtar yoludur. Öte yandan, büyük bir deyişle, ölçeklendirmeye yönelik yaklaşımınızın her ikisi de düşük maliyetli ve yüksek performanslı bir otomasyon düzeyinin olması gerekebilir. Sonraki bölümlerde ilgili senaryolar ve yöntemler açıklanmaktadır.
Denetim düzlemi 'ni kullanma
cassandra için Azure Cosmos DB apı 'si, çeşitli denetim düzlemi özelliklerimizi kullanarak aktarım hızını programlı bir şekilde ayarlama yeteneği sağlar. Rehberlik ve örnekler için Azure Resource Manager, POWERSHELLve Azure CLI makalelerine bakın.
Bu yöntemin avantajı, yoğun etkinlik veya düşük etkinlik dönemlerinde hesaba bir Zamanlayıcı temelinde kaynakların ölçeğini artırma veya azaltma işlemlerini otomatikleştirebileceğiniz bir yöntemdir. Azure Işlevleri ve PowerShell kullanarak bunu gerçekleştirmek için örneğimize göz atın.
Bu yaklaşımdan olumsuz bir dezavantajı, öngörülemeyen değişiklik ölçeği ihtiyaçlarına gerçek zamanlı olarak yanıt veremeyebilirsiniz. Bunun yerine, sisteminizde uygulama bağlamından, istemci/SDK düzeyinde veya Otomatik ölçeklendirmekullanmanız gerekebilir.
Belirli bir SDK ile CQL sorgularını kullanma
Verilen veritabanı veya kapsayıcı için CQL alter komutlarını yürüterek sistemi kodla dinamik olarak ölçeklendirebilirsiniz.
Bu yaklaşımın avantajı, ölçek ihtiyaçlarına dinamik olarak ve uygulamanıza uygun özel bir şekilde yanıt vermenize olanak tanır. Bu yaklaşım sayesinde standart RU/s ücretlerinden ve oranlarından yararlanmaya devam edebilirsiniz. Sisteminizin ölçek ihtiyacı genellikle tahmin edilebilir ise (%70 veya daha fazla), CQL ile SDK kullanılması, otomatik ölçeklendirmeyi kullanmaktan farklı şekilde Otomatik ölçeklendirmeye yönelik daha düşük maliyetli bir yöntem olabilir. Bu yaklaşımın dezavantajı, hız sınırlandırma gecikme süresini arttırabilirken yeniden denemeler uygulamak için oldukça karmaşık olabilir.
Otomatik ölçeklendirme sağlanan aktarım hızını kullan
Standart (el ile) veya üretilen iş sağlamaya yönelik programlama yöntemine ek olarak, Azure Cosmos kapsayıcılarını de otomatik ölçeklendirme sağlanan aktarım hızına yapılandırabilirsiniz. Otomatik ölçeklendirme, SLA 'Lara ödün vermeden belirtilen RU aralıklarında tüketim gereksinimlerinize otomatik olarak ve anında ölçeklenecektir. daha fazla bilgi edinmek için otomatik ölçeklendirme makalesinde Azure Cosmos kapsayıcıları ve veritabanları oluşturma makalesine bakın.
Bu yaklaşımın avantajı, sisteminizdeki ölçekleme ihtiyaçlarını yönetmenin en kolay yoludur. YAPıLANDıRıLAN ru aralıkları içinde hız sınırlaması uygulamaz. Dezavantajı, sisteminizdeki ölçekleme ihtiyaçları tahmin edilebilir ise, otomatik ölçeklendirme, yukarıda bahsedilen beslenme denetim düzlemi veya SDK düzeyi yaklaşımlarını kullanmaktan daha az uygun maliyetli bir yol olabilir.
CQL kullanarak otomatik ölçeklendirme için maksimum üretilen iş (ru) ayarlamak veya değiştirmek için aşağıdakileri kullanın (anahtar alanı/tablo adını uygun şekilde değiştirin):
# to set max throughput (RUs) for autoscale at keyspace level:
create keyspace <keyspace name> WITH cosmosdb_autoscale_max_throughput=5000;
# to alter max throughput (RUs) for autoscale at keyspace level:
alter keyspace <keyspace name> WITH cosmosdb_autoscale_max_throughput=4000;
# to set max throughput (RUs) for autoscale at table level:
create table <keyspace name>.<table name> (pk int PRIMARY KEY, ck int) WITH cosmosdb_autoscale_max_throughput=5000;
# to alter max throughput (RUs) for autoscale at table level:
alter table <keyspace name>.<table name> WITH cosmosdb_autoscale_max_throughput=4000;
Sonraki adımlar
- Java uygulaması kullanarak Cassandra API hesabı, veritabanı ve tablo oluşturmaya başlama