Elasticsearchソースコード分析——基本概念
5841 ワード
また、elasticsearchの基本概念の理解を先に書いておきましょう.
いくつかのブログを参照して、それを考えて、どこまで書きますか.
クラスタはノードごとに構成されており,前回紹介したdata nodeとmaster nodeの区別がある.1つのノードはelasticsearchインスタンスです.注目してymlの構成.例えば簡単なtransport.tcp.port構成、グローバル検索でこのパラメータがどのように登録されているかを見ることができます.自分でプラグインを書くとき、別のパラメータがあれば、パラメータ登録が必要かもしれません.もう一つの注目点は、パラメータ登録時にキーがあることです.Property.NodeScopeは、具体的なタイプを見ると、indexを作成するときにsettingsに配置されているIndexScopeというものもあります.例えばindexです.refresh_interval、これらはindexレベルです.ノードタイプのもう1つはnodeです.ingestは、主に業務転送を担当しています.インタフェースを呼び出すとノードのタイプが表示されます.
mdi対応はmaster,data,ingest
クラス比DBのデータベースでしょう.
クラス比データベースのテーブル{{くらす:でーたべーすのてーぶる}}
クラス比は、データベース内のフィールドメタデータ定義です.
この中でsolrに類比することができて、solrの概念の中ですべてreplicaと呼ばれて、ただreplicaの中で主備を分けました.elasticsearchでは、主はshard、予備はreplicaと呼ばれ、いずれにしても、この論理です.「index.number_of_shards」:1プライマリノードは1つのみで、異なるshardは異なるデータを格納します.「index.number_of_replicas」:1は、プライマリ・ノードにバックアップshardがあり、プライマリ・スタンバイに格納されているデータが一致していることを示します.最終的なコードロジックはいずれもIndexShardに対応する.
基本概念
いくつかのブログを参照して、それを考えて、どこまで書きますか.
Node
クラスタはノードごとに構成されており,前回紹介したdata nodeとmaster nodeの区別がある.1つのノードはelasticsearchインスタンスです.注目してymlの構成.例えば簡単なtransport.tcp.port構成、グローバル検索でこのパラメータがどのように登録されているかを見ることができます.自分でプラグインを書くとき、別のパラメータがあれば、パラメータ登録が必要かもしれません.もう一つの注目点は、パラメータ登録時にキーがあることです.Property.NodeScopeは、具体的なタイプを見ると、indexを作成するときにsettingsに配置されているIndexScopeというものもあります.例えばindexです.refresh_interval、これらはindexレベルです.ノードタイプのもう1つはnodeです.ingestは、主に業務転送を担当しています.インタフェースを呼び出すとノードのタイプが表示されます.
curl 127.0.0.1:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1 3 41 5 mdi * JwNql9p
mdi対応はmaster,data,ingest
index
クラス比DBのデータベースでしょう.
curl 127.0.0.1:9200/test
{
"test": {
"aliases": {},
"mappings": {
"type1": {
"properties": {
"message": {
"type": "text"
},
"post_date": {
"type": "text"
},
"user": {
"type": "text"
}
}
}
},
"settings": {
"index": {
"creation_date": "1528639332574",
"number_of_shards": "1",
"number_of_replicas": "1",
"uuid": "BrtyOMb8QL2Z01hkgELbdA",
"version": {
"created": "5050199"
},
"provided_name": "test"
}
}
}
}
type
クラス比データベースのテーブル{{くらす:でーたべーすのてーぶる}}
mappings
クラス比は、データベース内のフィールドメタデータ定義です.
curl 127.0.0.1:9200/test/_settings
{
"test": {
"settings": {
"index": {
"creation_date": "1528639332574",
"number_of_shards": "1",
"number_of_replicas": "1",
"uuid": "BrtyOMb8QL2Z01hkgELbdA",
"version": {
"created": "5050199"
},
"provided_name": "test"
}
}
}
}
shard
この中でsolrに類比することができて、solrの概念の中ですべてreplicaと呼ばれて、ただreplicaの中で主備を分けました.elasticsearchでは、主はshard、予備はreplicaと呼ばれ、いずれにしても、この論理です.「index.number_of_shards」:1プライマリノードは1つのみで、異なるshardは異なるデータを格納します.「index.number_of_replicas」:1は、プライマリ・ノードにバックアップshardがあり、プライマリ・スタンバイに格納されているデータが一致していることを示します.最終的なコードロジックはいずれもIndexShardに対応する.
curl 127.0.0.1:9200/_cat/shards?v
index shard prirep state docs store ip node
test 0 p STARTED 1 3.6kb 127.0.0.1 JwNql9p
test 0 r UNASSIGNED