2017-09-28 3 views
0

は、私は次のセットアップを持っていますいくつかのデータ変更を実行し、これをesアプリケーションの中に保存します。 (この変更は数時間にわたって実行されます)。クローンelasticsearchドッキングウィンドウ

この変更が行われた後、私はすべてのデータを含む作業ドッカーをコピーし、ライブドッカーを無効にしたいと考えています。

ライブで(または最小限のダウンタイムで)ダウンタイムを起こすことなく、数時間かけて変更を実行できます。

しかし、私はどのようにすべてのデータを含むオリジナルを "コピー"するのか分かりません。

あなたのヒントをありがとう。

+0

ドッカーで実行されている2つの別々のクラスタを使用してこれを解決したい場合は、青緑の展開戦略を使用できます。またはElasticsearch自体は、エイリアスを使用して単一のクラスタでこれを直接実行する手段を提供し、2つの別々のクラスタは必要ありません。どのソリューションが最も興味がありますか? – derickson82

答えて

1

Index Aliasesを使用してあなたのようなユースケースのための弾性評価ガイドoutlines a process to achieve zero downtime

アイデアは、アプリケーションが常にライブデータにアクセスするために使用するインデックスエイリアスを作成することです。

次の手順を実行し、「index1の」という名前のインデックスを指して「ALIAS1」という別名を考える:「INDEX2」

  • という名前の新しいインデックスは、あなたのバッチインデックス作成プロセスを実行します

    1. を作成します。
    2. スワップ "ALIAS1は"

    エイリアススワッピングは、単一の呼び出しで発生した "index1の"

  • クリーンアップ "INDEX2" を指すようにElasticsearchはアトミックにアクションを実行し、望むダウンタイムをゼロに抑えます。

    POST /_aliases 
    { 
        "actions" : [ 
         { "remove" : { "index" : "index1", "alias" : "alias1" } }, 
         { "add" : { "index" : "index2", "alias" : "alias1" } } 
        ] 
    } 
    
  • 関連する問題