Cassandra 복제 요인 및 일관성 수준 정보

Private Cloud용 Edge v. 4.17.01

Cassandra 복제 인수 정보

Cassandra는 안정성과 내결함성을 보장하기 위해 데이터 복제본을 여러 노드에 저장합니다. 각 Edge 키 공간의 복제 전략에 따라 복제본이 배치되는 노드가 결정됩니다.

Cassandra 클러스터 전체에서 키스페이스의 총 복제본 수를 키스페이스의 복제 인수라고 합니다. 복제 인수가 1이면 Cassandra 클러스터에 각 행의 사본이 하나만 있음을 의미합니다. 복제 계수가 2이면 각 행에 사본이 2개 있고 각 사본이 서로 다른 노드에 있음을 의미합니다. 모든 복제본은 동일하게 중요합니다. 기본 또는 마스터 복제본은 없습니다.

각 데이터 센터에 Cassandra 노드가 3개 이상 있는 프로덕션 시스템에서 Edge 키 공간의 기본 복제 인수는 3입니다. 일반적으로 복제 계수는 클러스터의 Cassandra 노드 수를 초과하면 안 됩니다.

다음 절차에 따라 각 Edge 키스페이스의 복제 인수를 보여주는 Cassandra 스키마를 확인합니다.

  1. Cassandra 노드에 로그인합니다.
  2. 다음 명령어를 실행합니다.
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    여기서 $(hostname -i)는 Cassandra 노드의 IP 주소로 확인됩니다. 또는 $(hostname -i)를 노드의 IP 주소로 바꿀 수 있습니다.

각 키스페이스에 대해 다음과 같은 형식으로 출력이 표시됩니다.

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

데이터 센터 1(dc-1)의 경우 Cassandra 노드가 3개인 설치에서 kms 키스페이스의 기본 복제 계수는 3입니다.

클러스터에 Cassandra 노드를 추가해도 기본 복제 계수는 영향을 받지 않습니다.

예를 들어 Cassandra 노드 수를 6개로 늘리지만 복제 인수는 3으로 두면 모든 Cassandra 노드에 모든 데이터의 사본이 있는지 확인할 수 없습니다. 노드가 다운되는 경우 복제 계수가 높을수록 노드의 데이터가 나머지 노드 중 하나에 존재할 확률이 높아집니다. 복제 인자가 높을수록 데이터 쓰기의 지연 시간이 증가한다는 단점이 있습니다.

Cassandra 일관성 수준 정보

Cassandra 일관성 수준은 작업이 성공한 것으로 간주되기 전에 읽기 또는 쓰기 작업을 확인해야 하는 최소 Cassandra 노드 수로 정의됩니다. 서로 다른 Edge 키스페이스에 서로 다른 일관성 수준을 할당할 수 있습니다.

읽기 및 쓰기 작업을 위해 Cassandra에 연결할 때 메시지 프로세서 및 관리 서버 노드는 일반적으로 Cassandra 값 LOCAL_QUORUM을 사용하여 키스페이스의 일관성 수준을 지정합니다. 그러나 일부 키스페이스는 일관성 수준 1을 사용하도록 정의됩니다.

데이터 센터의 LOCAL_QUORUM 값을 계산하는 방법은 다음과 같습니다.

LOCAL_QUORUM = (replication_factor/2) + 1 

위에서 설명한 대로 Cassandra 노드가 3개인 Edge 프로덕션 환경의 기본 복제 요소는 3개입니다. 따라서 LOCAL_QUORUM의 기본값은 (3/2) + 1 = 2입니다 (값이 정수로 내림 처리됨).

LOCAL_QUORUM = 2인 경우 데이터 센터의 Cassandra 노드 3개 중 2개 이상이 읽기/쓰기 작업에 응답해야 작업이 성공합니다. 따라서 3노드 Cassandra 클러스터의 경우 클러스터는 데이터 센터당 노드 1개가 다운되는 것을 허용할 수 있습니다.

일관성 수준을 LOCAL_QUORUM으로 지정하면 Edge는 여러 데이터 센터에서 작업을 검증하는 데 필요한 지연 시간을 방지합니다. 키스페이스에서 Cassandra QUORUM 값을 일관성 수준으로 사용하는 경우 모든 데이터 센터에서 읽기/쓰기 작업을 확인해야 합니다.

에지 메시지 프로세서 또는 관리 서버 노드에서 사용하는 일관성 수준을 확인하려면 다음 안내를 따르세요.

  1. 메시지 프로세서 노드에 로그인합니다.
  2. /opt/apigee/edge-message-processor/conf 디렉터리로 변경합니다.
    > cd /opt/apigee/edge-message-processor/conf
  3. 쓰기 일관성:
    > grep -ri "write.consistencylevel" *
  4. 읽기 일관성:
    > grep -ri "read.consistencylevel" *
  5. 관리 서버 노드에 로그인합니다.
  6. /opt/apigee/edge-management-server/conf 디렉터리로 변경합니다.
    > cd /opt/apigee/edge-management-server/conf
  7. 3단계와 4단계를 반복합니다.

클러스터에 Cassandra 노드를 추가해도 일관성 수준은 영향을 받지 않습니다.