如何防止ElasticSearch出現的腦裂問題

2021-10-08 18:57:32 字數 772 閱讀 3713

所謂腦裂問題(類似於精神**),就是同乙個集群中的不同節點,對於集群的狀態有了不一樣的理解。

舉個例子:

節點1在啟動時被選舉為主節點並儲存主分片標記為0p,而節點2儲存複製分片標記為0r

現在,如果在兩個節點之間的通訊中斷了,會發生什麼?由於網路問題或只是因為其中乙個節點無響應,這是有可能發生的。

兩個節點都相信對方已經掛了。節點1不需要做什麼,因為它本來就被選舉為主節點。但是節點2會自動選舉它自己為主節點,因為它相信集群的一部分沒有主節點了。在elasticsearch集群,是有主節點來決定將分片平均的分布到節點上的。節點2儲存的是複製分片,但它相信主節點不可用了。所以它會自動提公升複製節點為主節點。

現在我們的集群在乙個不一致的狀態了。打在節點1上的索引請求會將索引資料分配在主節點,同時打在節點2的請求會將索引資料放在分片上。在這種情況下,分片的兩份資料分開了,如果不做乙個全量的重索引很難對它們進行重排序。在更壞的情況下,乙個對集群無感知的索引客戶端(例如,使用rest介面的),這個問題非常透明難以發現,無論哪個節點被命中索引請求仍然在每次都會成功完成。問題只有在搜尋資料時才

CronJob刪除ElasticSearch日誌

目前在k8s平台內,通過pod掛載hostpath將程式形成的日誌檔案傳輸儲存到宿主機指定目錄上,然後fluentd根據指定目錄去蒐集日誌檔案 json格式 然後通過呼叫elasticsearch 以下簡稱es 的api將日誌儲存到es中,那麼問題來了,日誌檔案大了怎麼清理?1.每個工作節點上的日誌...

windows下的elasticSearch安裝

es官網 進入bin目錄,雙擊elasticsearch.bat 訪問http localhost 9200可訪問 新增ik分詞器 解壓ik分詞器包,放到es安裝目錄的plugins中的analysis ik 資料夾中 新建analysis ik 資料夾 再次啟動elasticsearch.bat,...

同步LDAP資料到ElasticSearch

純python編寫 支援全量同步ldap資料,包括person 使用者 computer 計算機 group 組 多程序 協程實現快速同步 簡單配置即可使用 clone專案到本地 git clone 安裝依賴 cd ldap2es pip install r requirements.txt 修改配...