elasticsearch 增刪改流程和寫一致性

2022-08-25 23:12:16 字數 1674 閱讀 9629

增刪改流程:

1. 客戶端和任一節點(假設 node1)發出請求,這個node就是coordinating node(協調節點)

2. coordinating node,對document進行路由,將請求**給對應的node(有primary shard,假設是 node2)

3. node2上的primary shard處理請求,然後將資料同步到replica node

4. coordinating node,如果發現primary node和所有replica node都搞定之後,就返回響應結果給客戶端

寫一致性

(1)consistency,one(primary shard),all(all shard),quorum(default)

我們在傳送任何乙個增刪改操作的時候,比如說put /index/type/id,都可以帶上乙個consistency引數,指明我們想要的寫一致性是什麼

put /index/type/id?consistency=quorum

one:要求我們這個寫操作,只要有乙個primary shard是active活躍可用的,就可以執行

all:要求我們這個寫操作,必須所有的primary shard和replica shard都是活躍的,才可以執行這個寫操作

quorum:預設的值,要求所有的shard中,必須是大部分的shard都是活躍的,可用的,才可以執行這個寫操作

(2)quorum機制,寫之前必須確保大多數shard都可用,int( (primary + number_of_replicas) / 2 ) + 1,當number_of_replicas>1時才生效

quroum = int( (primary + number_of_replicas) / 2 ) + 1

舉個例子,3個primary shard,number_of_replicas=1,總共有3 + 3 * 1 = 6個shard

quorum = int( (3 + 1) / 2 ) + 1 = 3

所以,要求6個shard中至少有3個shard是active狀態的,才可以執行這個寫操作

(3)如果節點數少於quorum數量,可能導致quorum不齊全,進而導致無法執行任何寫操作

3個primary shard,replica=1,要求至少3個shard是active,3個shard按照之前學習的shard&replica機制,必須在不同的節點上,如果說只有2臺機器的話,是不是有可能出現說,3個shard都沒法分配齊全,此時就可能會出現寫操作無法執行的情況

es提供了一種特殊的處理場景,就是說當number_of_replicas>1時才生效,因為假如說,你就乙個primary shard,replica=1,此時就2個shard

(1 + 1 / 2) + 1 = 2,要求必須有2個shard是活躍的,但是可能就1個node,此時就1個shard是活躍的,如果你不特殊處理的話,導致我們的單節點集群就無法工作

(4)quorum不齊全時,wait,預設1分鐘,timeout,100,30s

等待期間,期望活躍的shard數量可以增加,最後實在不行,就會timeout

我們其實可以在寫操作的時候,加乙個timeout引數,比如說put /index/type/id?timeout=30,這個就是說自己去設定quorum不齊全的時候,es的timeout時長,可以縮短,也可以增長

Elasticsearch增刪改查

增刪改查是資料庫的基礎操作方法。es 雖然不是資料庫,但是很多場合下,都被人們當做乙個文件型 nosql 資料庫在使用,原因自然是因為在介面和分布式架構層面的相似性。雖然在 elastic stack 場景下,資料的寫入和查詢,分別由 logstash 和 kibana 代勞,作為測試 調研和排錯時...

ElasticSearch筆記 增刪改

新增單個文件post index1 user 1000 如果不指定id,將隨機生成乙個,id的欄位名是 id 刪除指定id的文件delete blog article2 1按條件刪除post index5 people delete by query?q name zhangsan覆蓋文件 es中文...

Elasticsearch常用增刪改查記錄

最近使用elasticsearch來做異常監控的儲存,寫了不少es的索引操作,以及對資料的增刪改查操作,記錄一下,以備不時之需。列出所有索引 get cat indices 檢視indices get cat indices jz fe v s index 檢視索引的文件總數 刪除索引 檢視索引相關...