Edge dla chmury prywatnej w wersji 4.19.01
Informacje o współczynniku replikacji Cassandra
Cassandra przechowuje repliki danych na wielu węzłach, aby zapewnić niezawodność i odporność na błędy. Strategia replikacji dla każdej przestrzeni kluczy Edge określa węzły, w których umieszczane są repliki.
Łączna liczba replik przestrzeni kluczy w klastrze Cassandra jest nazywana czynnikiem replikacji przestrzeni kluczy. Współczynnik replikacji równy 1 oznacza, że w klastrze Cassandra znajduje się tylko jedna kopia każdego wiersza. Współczynnik replikacji równy 2 oznacza, że istnieją 2 kopie każdego wiersza, przy czym każda kopia znajduje się w innym węźle. Wszystkie repliki są równie ważne – nie ma repliki podstawowej ani głównej.
W systemie produkcyjnym z co najmniej 3 węzłami Cassandra w każdym centrum danych domyślny współczynnik replikacji przestrzeni kluczy Edge wynosi 3. Ogólnie rzecz biorąc, współczynnik replikacji nie powinien przekraczać liczby węzłów Cassandra w klastrze.
Aby wyświetlić schemat Cassandra, który pokazuje współczynnik replikacji dla każdej przestrzeni kluczy Edge, wykonaj te czynności:
- Zaloguj się w węźle Cassandra.
- Uruchom to polecenie:
/opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
Gdzie
$(hostname -i)jest rozpoznawany jako adres IP węzła Cassandra. Możesz też zastąpić$(hostname -i)adresem IP węzła.
W przypadku każdej przestrzeni kluczy zobaczysz dane wyjściowe w postaci:
create keyspace kms
with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {dc-1 : 3}
and durable_writes = true;W przypadku centrum danych 1, dc-1, domyślny współczynnik replikacji dla przestrzeni kluczy kms wynosi 3 w przypadku instalacji z 3 węzłami Cassandra.
Jeśli dodasz do klastra kolejne węzły Cassandra, nie będzie to miało wpływu na domyślny współczynnik replikacji.
Jeśli na przykład zwiększysz liczbę węzłów Cassandra do 6, ale współczynnik replikacji pozostawisz na poziomie 3, nie będziesz mieć pewności, że wszystkie węzły Cassandra mają kopię wszystkich danych. Jeśli węzeł przestanie działać, wyższy współczynnik replikacji oznacza większe prawdopodobieństwo, że dane z tego węzła znajdują się na jednym z pozostałych węzłów. Wadą wyższego współczynnika replikacji jest zwiększone opóźnienie zapisu danych.
Poziom spójności Cassandra
Poziom spójności Cassandra jest definiowany jako minimalna liczba węzłów Cassandra, które muszą potwierdzić operację odczytu lub zapisu, zanim operacja zostanie uznana za udaną. Różne poziomy spójności można przypisać do różnych przestrzeni kluczy Edge.
Podczas nawiązywania połączenia z bazą danych Cassandra na potrzeby operacji odczytu i zapisu węzły procesora komunikatów i serwera zarządzania zwykle używają wartości Cassandra LOCAL_QUORUM, aby określić poziom spójności przestrzeni kluczy. Niektóre przestrzenie kluczy są jednak zdefiniowane tak, aby używać poziomu spójności 1.
Wartość LOCAL_QUORUM dla centrum danych jest obliczana w ten sposób:
LOCAL_QUORUM = (replication_factor/2) + 1
Jak opisano powyżej, domyślny współczynnik replikacji dla środowiska produkcyjnego Edge z 3 węzłami Cassandra wynosi 3. Dlatego domyślna wartość LOCAL_QUORUM = (3/2) + 1 = 2 (wartość jest zaokrąglana w dół do liczby całkowitej).
Jeśli LOCAL_QUORUM = 2, co najmniej 2 z 3 węzłów Cassandra w centrum danych muszą odpowiedzieć na operację odczytu/zapisu, aby operacja się powiodła. W przypadku klastra Cassandra z 3 węzłami klaster może tolerować awarię 1 węzła na centrum danych.
Określając poziom spójności jako LOCAL_QUORUM, Edge unika opóźnień wymaganych do sprawdzania poprawności operacji w wielu centrach danych. Jeśli przestrzeń kluczy używała wartości QUORUM Cassandra jako poziomu spójności, operacje odczytu i zapisu musiałyby być weryfikowane we wszystkich centrach danych.
Aby sprawdzić poziom spójności używany przez węzły procesora komunikatów lub serwera zarządzania Edge:
- Zaloguj się w węźle procesora komunikatów.
- Przejdź do katalogu /opt/apigee/edge-message-processor/conf:
cd /opt/apigee/edge-message-processor/conf
- W przypadku spójności zapisu:
grep -ri "write.consistencylevel" *
- W przypadku spójności odczytu:
grep -ri "read.consistencylevel" *
- Zaloguj się w węźle serwera zarządzania.
- Przejdź do katalogu /opt/apigee/edge-management-server/conf:
cd /opt/apigee/edge-management-server/conf
- Powtórz kroki 3 i 4.
Jeśli dodasz do klastra kolejne węzły Cassandra, nie wpłynie to na poziom spójności.