検索エンジン2

インタビューの質問

ES 分散アーキテクチャの原則は、(それについて言うことができるESは、分散ああを達成する方法ですか)?

心理学的分析インタビュアー

この検索では、 Luceneには、最も人気のある検索ライブラリです。業界数年前には、一般的に、あなたが知っている、聞いてLuceneのそれを?あなたは転置インデックス、それの原理を知っていますか?さて、既に出て、今多くのプロジェクトが直接に基づいているため、Luceneの分散型検索エンジン- elasticsearch 、と呼ばれるES

そして今、分散検索は、最も基本的なインターネット業界となっている Javaの特に人気があり、標準システム、ES 数年前に、ESの時間が火災なかった、私たちが一般的に使用してSolrをしかし、今年の企業やプロジェクトの実質的な大多数が回っているESをアップ。

インターネットのインタビューだから、あなたは間違いなく、それは話をする分散型検索エンジンと話をする ESをあなたは知っていない場合は、あなたが実際にある、の。

インタビュアーが最初にあなたに質問をする場合は、通常頼むん ESの分散アーキテクチャは、それについての私達に伝えることができますか?あなたに分散検索エンジンアーキテクチャの基本的な理解をご覧ください。

フェイス質問解析

ElasticSearchのデザインコンセプトは、分散型検索エンジンですが、それはまだ根本的に基づいているのLucene の。核となるアイデアは、複数のマシン上で複数を開始するES 形成され、プロセス・インスタンスのES クラスタ。

ES データに保存されたインデックスされたベースユニット、たとえば、あなたが今欲しいのES 店、あなたがすべき順序で一部のデータESは、インデックス作成  order_idxを、すべての注文データは、インデックス内の、類似の指標に書かれていますのと同等である mysqlのテーブルでは。

インデックス- >タイプ- >マッピング- >ドキュメント- >フィールド

まあ、もっと簡単なプレゼンテーションを可能にするために、私は類推するここです。しかし、唯一の理解を容易にするためではない等式類推を行い、覚えておいてください。

インデックスに相当mysqlのテーブルインチ タイプが言うことができないのmysql 、コントラスト行くインデックスは、複数持つことができますタイプは、各タイプのフィールドが似ていますが、若干の違いがあります。そこにあるとしたインデックスは、それが順序であるインデックス注文データを置くために専用されています、。あなたが言うようなのmysql Jianzhongテーブルを、いくつかの受注は、靴などの衣類の一部として物理的な商品、受注であり、いくつかの受注は、ゲームカード、プリペイド再充電などの仮想グッズの受注、です。フィールドのほとんどのこれらのラインは同じですが、フィールドの小さな部分は、いくつかのわずかな違いがあるかもしれません。

それは注文になります指数、2つの建設タイプは、一つは物理的な商品の注文であるタイプ、仮想財受注のあるタイプの両方、タイプフィールドのほとんどが同じで、フィールドの小さな部分は同じではありません。

多くの場合、インデックスはおそらくだったタイプが、それは確かにある場合、インデックス、複数あるタイプの状況(ノートタイプマッピングにおける概念 ElasticSearch 7.Xが完全に削除されているが、詳細な説明を参照することができます公式ドキュメント)、あなたはと思うかもしれ指数はそれぞれに固有の、カテゴリのリストであるタイプは表しmysqlのテーブルを。それぞれのタイプがありマッピングをあなたが考える場合は、タイプは、特定のテーブルで、インデックスは以上表しタイプタイプ属し、およびマッピングが、このあるタイプテーブル構造の定義、あなたは MYSQL 確かに、テーブルを作成しますどのフィールドを有するテーブル構造を定義するために、各フィールドは、どのようなタイプです。実際にあなたが行きますインデックスタイプと呼ばれるデータの部分の内側に書かれた、文書文書の代わりにMySQLのテーブル内の行は、各文書が複数持つフィールドを、各フィールドこれに代わって文書の分野値。

 

索引に従事する、インデックスが複数に分割することができる  断片、各シャード記憶部のデータ。複数のスプリットシャードをいい、最初にサポートの水平展開、そのようなあなたがいるデータの量として、 3T 3 のGe シャード、各シャード1Tのデータの量が今まで上昇した場合、データ4T 再び、非常に単純な、拡張方法、構築された。4 番目のシャードデータに導か指数;第二は、性能向上のために、分散データの複数の断片全ての操作は、複数のマシンに分散並行して行われる、すなわち、複数のサーバーを、改良されたスループットボリュームとパフォーマンス。

 

そして、このさシャードのデータが実際にある複数のバックアップを持って、各シャードはあり プライマリー断片データを書き込むための責任を、しかし、いくつかある  レプリカのシャードはプライマリー断片  データを書き込んだ後、データは他のいくつかに同期されます シャードレプリカ  アップ。

 

これによりレプリカスキームの、各シャードのデータが複数のバックアップを持っているマシンがダウンした場合、それがああ問題ではありません、他のマシン上のデータの他のコピーがあるんです。それの可用性。

 

ESは、一つのノードが自動的に選出され、複数のノードをクラスタマスターノード、マスターノードは、実際に、このようなスイッチングを担当するメンテナンス・インデックス・メタデータ、など、いくつかの管理作業を行っているプライマリー断片レプリカのシャードの状態を。場合は、マスタノードがダウンし、その後、ノードは次のように再選されるマスターノード。

 

非場合は、マスタノードがダウンし、それはによるであろうマスターノード上のダウンタイムので、ノードプライマリー断片のアイデンティティが上の他のマシンに転送レプリカのシャードそして、あなたは再起動後に、そのマシンのダウンタイムを修正する場合は、マスター欠落しているノードのコントロールレプリカシャードので、クラスタ正常に戻って、後続の変更のデータ同期などの過去の分布を、。

 

非場合に、より簡単に前記マスターノードがダウンしています。このノード上のように、プライマリー断片がなくなっていません。まあ、マスターが作るプライマリー断片に対応するレプリカシャードに切り替えている(別のマシン上の)プライマリー断片ノードがダウンした場合、修復はもはや後にマシンは、修復されませんプライマリー断片が、レプリカのシャード

 

実際には、上記のは、ある ElasticSearch 分散検索エンジンなど、基本的なアーキテクチャ。

 

 

おすすめ

転載: www.cnblogs.com/lingboweifu/p/11897388.html