高流量でElasticSearch検索の進化

これは本質を共有するために27の石工(bysocket.com)であります

ES(ElasticSearch)は、分散型検索エンジンです。MySQLの、メモリに似実際には、あまりにもあいまいなエンジン、。次の機能を促進します:

  • リアルタイム検索の近く
  • フルテキスト検索、構造検索、統計解析

そして、データがどこから来ESに保存されていますか?

答えは、データの同期です。私たちは、次の方法をお勧めします。

  1. データ送信(データ送信)がRDBMS(リレーショナルデータベース)のNoSQL、OLAPデータソースとアリ雲によって提供される他のデータサービスとの間の支持のデータ交換です。[アリ]
    https://help.aliyun.com/product/26590.html

  2. 同期億件の受注探査と実践を称賛するには、[私の兄がチームの外に滞在する]
    https://mp.weixin.qq.com/s/33KACMxXkgzZyIL9m6q4YA

ESの進化に戻ります

小流量段階

新興企業で、その時点で、同期の全額たびに、あなたは、タスクを実行するために午前中に見ることができます。ES CRUDまたは直接、データの同期に。

擬似単一のクラスタにも実行することができます。特定のフルテキスト検索のアイデア:

  • 「フレーズ一致」に基づいて、最小マッチ重み値を設定します
  • 単語IKトークナイザを使用して、フレーズどこです
  • スクリーニングを実施Fiter基づき、
  • ページングを実装ページング可能に基づいてソート

具体的に私のブログやESシリーズGitHubのを見てください。

第二に、大流量ゆっくり

大きさの順序は百万/百万のデータレコードとクエリの同期を推定しています。

この金額を解決するために、擬似単一のクラスタ、および運用・保守レベルにすることはできません。

  • クラスタアセンブリの実行ElasticSearch複数のインスタンス(ノードノード)ElasticSearchあります
  • 水平展開を経由してクラスタにノードを追加します。

どのように展開のレベル

それがインデックスに同定されたマスタースライスを作成します。読み出し動作が同時にマスタとサブフラグメントフラグメント処理することができます。そのため、より多くの断片化、それはより高いスループットを持つことになります。当然のことながら、スループットをサポートするために、より多くのハードウェアリソースを追加する必要があります。少ないリソースが各スライス利用できるようになるので、ここで説明することは、パフォーマンスを向上させることはできません。動的フラグメントのコピーの数を調整する、クラスタがそのようなコピーの数として、必要に応じてスケールデフォルト値は1〜2です。

PUT /blogs/_settings
{
"number_of_replicas" : 2
}

基本的には各事業曹操のクラスタクラスタ口:受注、商品など

7d048daf8363bdfe9ecf203febc39442.png

注文の流れの第三に、突然のサージ

突然問題が見つかりました:

  • 大きな遅い検索インデックス内のクラスタは、他のインデックスに小さなクラスターに影響を与えます。

たとえば、インデックスは今と同じ、大きな、遅い調査を命令されます。その他の事業に影響を与えます。それはあなたがになって、そのようにすべきではありませんか?

答えは:マルチクラスタのための物理的な分離:

  • クラスタ受注、クラスタの商品アイソレーション:多くのクラスタに分割
  • 複数のコンピュータのサポート

どのように企業のアップグレードのシングルポイント:この時間は、多くの場合、問題の原因でしょうか?

このプロジェクトは、関連するデータ項目のインデックスを格納しています。プロジェクトの大きさは、億ミドル級、ミドル級兆、成長しています。ボトルネックがどうなるかの大規模なインデックスクエリという。今回はそれを最適化するには?

ソリューション:ホットとコールドのセパレータ、スプリット

大規模なインデックスを破る、それは難しいことではありません。同様のスライスのルーティングルールは、特定のサービスに応じて指定することができます。

ここでは、てproject_1、project_2、project_3命名され、1000年のインデックスを定義することができます...

そして、トップラックに簡単なプロキシESクラスタの層。コアルーティングビジネスルールの内側になります

PROJECT_IDプロジェクトインクリメントIDは、
IDに対応するインデックスから抜け出すINDEX_ID

index_id = project_id % 1000

dca0d9e6ea4a9cc7a58cd5e2738679f9.png

  • ESは、プロキシ層:本当の総インデックスとサブインデックスマッピングを行います
  • ES指数構成管理:ビジネスの行うマッピングインデックス
  • ESクラスタ

ホット及びコールドセパレータと中間状態に類似しているホットな独立したデータの独立したクラスタ索引です。定期的に内側端状態からデータを削除します。そして、インデックスはデータが少なく、大きな泥棒検索検索クエリをサポートすることです。なぜありません。

  • END -

ファイル

おすすめ

転載: www.cnblogs.com/Alandre/p/11130898.html