Edge for Private Cloud v. 4.17.09
Cassandra のレプリケーション係数について
Cassandra は複数のノードにデータレプリカを保存し、信頼性とフォールト トレランスを確保します。 Edge キースペースごとのレプリケーション戦略によって、レプリカを配置するノードが決まります あります。
Cassandra クラスタ全体のキースペースのレプリカの合計数は、 キースペースのレプリケーション係数。レプリケーション係数が 1 の場合は、 行のコピーを作成します。レプリケーション係数が 2 の場合は、2 つの コピー(各コピーは異なるノード上に存在する)すべてのレプリカは等しく重要です。 プライマリ レプリカとマスター レプリカはありません。
各データセンターに 3 つ以上の Cassandra ノードがある本番環境システムでは、デフォルトの Edge キースペースのレプリケーション係数は 3 です。原則として、レプリケーション係数は クラスタ内の Cassandra ノードの数を超えないようにしてください。
レプリケーション係数を示す Cassandra スキーマを表示するには、次の操作を行います。 各 Edge キースペースに対して、次のように設定します。
- Cassandra ノードにログインします。
- 次のコマンドを実行します。
> /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<<「表示 schema;」
ここで $(hostname -i) は解決される Cassandra ノードの IP アドレスに接続します。または、$(hostname -i) の部分をアプリケーションの あります。
キースペースごとに、次の形式の出力が表示されます。
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
データセンター 1(dc-1)のデフォルトのレプリケーション係数は、 kms キースペースは、 3 つの Cassandra ノードを使用する構成を示しています。
Cassandra ノードをクラスタに追加しても、デフォルトのレプリケーション係数は 表示されます。
たとえば、Cassandra ノードの数を 6 に増やし、レプリケーションは すべての Cassandra ノードにすべてのデータのコピーが存在するとは限りません。もし レプリケーション係数が高いほど、そのノード上のデータが 残りのノードのいずれかに存在します。レプリケーション係数を大きくすると、デメリットが増加します。 レイテンシを短縮できます。
Cassandra の整合性レベルについて
Cassandra の整合性レベルは、アプリケーションに必要な Cassandra ノードの最小数として 読み取りまたは書き込みオペレーションが成功したとみなす前に確認応答を送ります。 Edge キースペースごとに異なる整合性レベルを割り当てることができます。
読み取り / 書き込みオペレーションのために Cassandra に接続する場合、Message Processor および Management サーバーノードでは通常、Cassandra の値 LOCAL_QUORUM を使用して、 キースペースの整合性レベルを指定します。ただし、一部のキースペースは 整合性レベル 1 にします
データセンターの LOCAL_QUORUM の値は次のように計算されます。
LOCAL_QUORUM = (replication_factor/2) + 1
前述のように、Cloud KMS を使用する Edge 本番環境のデフォルトのレプリケーション係数は、 3 つの Cassandra ノードがあります。したがって、LOCAL_QUORUM のデフォルト値は (3/2)+1 = 2(値は整数に切り捨てられます)となります。
LOCAL_QUORUM = 2 で、データ内の 3 つの Cassandra ノードのうち少なくとも 2 つ オペレーションが成功するには、センターが読み取り/書き込みオペレーションに応答する必要があります。3 ノードの場合 そのため、データセンターごとに 1 つのノードがダウンすることを許容できます。
整合性レベルを LOCAL_QUORUM として指定することで、Edge はレイテンシを回避します。 複数のデータセンターで運用を検証する必要があります。キースペースが Cassandra を使用して QUORUM 値を整合性レベルに設定するには、読み取り/書き込みオペレーションを すべてのデータセンターで検証できます。
Edge Message Processor または Management Server で使用される整合性レベルを確認する ノード:
- Message Processor ノードにログインします。
- /opt/apigee/edge-message-processor/conf ディレクトリに移動します。
>cd /opt/apigee/edge-message-processor/conf - 書き込みの整合性:
>grep -ri "write.consistencylevel"* - 読み取りの整合性を保つため:
>grep -ri 「read.constraintlevel」* - Management Server ノードにログインします。
- /opt/apigee/edge-management-server/conf ディレクトリに移動します。
>cd /opt/apigee/edge-management-server/conf - ステップ 3 と 4 を繰り返します。
Cassandra ノードをクラスタに追加しても、整合性レベルに影響はありません。