Cassandra çoğaltma faktörü ve tutarlılık düzeyi hakkında

Cassandra çoğaltma faktörü hakkında

Cassandra, güvenilirlik ve hata toleransı sağlamak için veri replikalarını birden fazla düğümde depolar. Her Edge tuş alanı için çoğaltma stratejisi, replikaların yer alır.

Bir Cassandra kümesindeki bir anahtar alanı için oluşturulan toplam replika sayısına keyspace'in çoğaltma faktörünü kullanın. Çoğaltma faktörünün bir olması, sayfada yalnızca tek bir her satırın kopyasını oluşturur. Çoğaltma faktörünün iki olması, iki hesap olduğu anlamına gelir her kopya farklı bir düğümde yer alır. Tüm replikalar eşit derecede önemlidir; birincil veya ana replika yoktur.

Her veri merkezinde üç veya daha fazla Cassandra düğümü bulunan bir üretim sisteminde Edge tuş alanı için çoğaltma faktörü üçtür. Genel bir kural olarak, çoğaltma faktörü kümedeki Cassandra düğümlerinin sayısını aşmamalıdır.

Her Edge tuş alanı için çoğaltma faktörünü gösteren Cassandra şemasını görüntülemek için aşağıdaki prosedürü kullanın:

  1. Bir Cassandra düğümüne giriş yapın.
  2. Aşağıdaki komutu çalıştırın:
    /opt/apigee/apigee-cassandra/bin/cqlsh $(hostname -i) [-u cassuser -p casspass] -e "select keyspace_name, replication from system_schema.keyspaces;"

    Burada $(hostname -i), Cassandra düğümünün IP adresine çözümlenir. Alternatif olarak, $(hostname -i) yerine düğümün IP adresini girebilirsiniz.

    cassuser: Cassandra kimlik doğrulamasını etkinleştirdiyseniz Cassandra kullanıcı adını iletin. Bu, isteğe bağlıdır ve Cassandra kimlik doğrulamasını etkinleştirmediyseniz atlanabilir.

    casspass: Cassandra kimlik doğrulamasını etkinleştirdiyseniz Cassandra şifresini iletin. Bu, isteğe bağlıdır ve Cassandra kimlik doğrulamasını etkinleştirmediyseniz atlanabilir.

Aşağıdakine benzer bir çıkış görürsünüz. Burada her satır bir tuş alanını temsil eder:

  keyspace_name       | replication                                                                 
  kms                 | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'}
  system_distributed  | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
  apprepo             | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'}
  

Üç Cassandra düğümü olan kurulumda kms tuş alanı için varsayılan çoğaltma faktörünün 1, dc-1 veri merkezi için üç olduğunu görebilirsiniz. Cassandra'nın içindeki belirli anahtar alanları (system, system_schema vb. gibi) için çoğaltma stratejisi ve replika faktörü farklı olabilir. Bu, bilinçli bir sistem davranışıdır.

Kümeye ek Cassandra düğümleri eklerseniz varsayılan çoğaltma faktörü yardımcı olabilir.

Cassandra tutarlılık düzeyi hakkında

Cassandra tutarlılık düzeyi, olması gereken minimum Cassandra düğümü sayısı işlemin başarılı olarak kabul edilmesi için önce bir okuma veya yazma işlemini onaylamalıdır. Farklı Edge tuş alanlarına farklı tutarlılık seviyeleri atanabilir.

Okuma ve yazma işlemleri için Cassandra'ya bağlanırken, Mesaj İşleyici ve Yönetim Sunucu düğümleri genellikle LOCAL_QUORUM değerindeki Cassandra değerini bir tuş alanı için tutarlılık düzeyini belirtin. Ancak bazı tuş alanları tutarlılık seviyesi bir.

Bir veri merkezi için LOCAL_QUORUM değeri şu şekilde hesaplanır:

LOCAL_QUORUM = (replication_factor/2) + 1

Yukarıda açıklandığı gibi, üç Cassandra düğümü üçtür. Dolayısıyla, varsayılan LOCAL_QUORUM değeri = (3/2) +1 = 2 (değer bir tam sayıya yuvarlanır).

LOCAL_QUORUM = 2 olduğunda, verilerdeki üç Cassandra düğümünden en az ikisi merkez, işlemin başarılı olması için bir okuma/yazma işlemine yanıt vermelidir. Üç düğüm için Bu nedenle küme, veri merkezi başına bir düğümün çalışmamasına izin verebilir.

Tutarlılık düzeyini LOCAL_QUORUM olarak belirttiğinizde Edge gecikmeyi önler Bu, birden fazla veri merkezindeki işlemleri doğrulamak için gereklidir. Bir tuş alanı Cassandra Tutarlılık düzeyi olarak QUORUM değeri. Okuma/yazma işlemleri için tüm veri merkezlerinde doğrulanmıştır.

Uç İleti İşlemci veya Yönetim Sunucusu düğümlerinin kullandığı tutarlılık düzeyini görmek için:

  1. Bir İleti İşleyen düğümüne giriş yapın.
  2. /opt/apigee/edge-message-processor/conf dizinine geçin:
    cd /opt/apigee/edge-message-processor/conf
  3. Okuma ve yazmanın tutarlılığı için:
    grep -ri "consistency.level" *
  4. Yönetim Sunucusu düğümüne giriş yapın.
  5. /opt/apigee/edge-management-server/conf dizinine geçin:
    cd /opt/apigee/edge-management-server/conf
  6. 3. adımı tekrarlayın.

Kümeye ek Cassandra düğümleri eklerseniz tutarlılık düzeyi etkilenmez.