es配置項分析及腦裂問題

2021-12-30 01:02:18 字數 2242 閱讀 3187

1、elasticsearch重要配置項解釋:

集群的名字cluster.name: elasticsearch-wyl配置當前節點的名字,每個節點的名字都應該是唯一的node.name: "node1"es儲存資料的地方path.data: "/opt/elasticsearch/data"es儲存日誌的地方path.logs: "/opt/elasticsearch/logs"這兩個配置有4種配置方法,表示這個節點是否可以充當主節點,以及點是否充當資料節點。具體的解釋在 es遷移分片,重置主節點這個部落格中有具體的介紹。node.master: true

node.data: false繫結host,0.0.0.0代表當前節點的ipnetwork.host: "0.0.0.0"這個是對外提供http服務的埠http.port: 9200

discovery.zen.ping.multicast.enabled: false

discovery.zen.fd.ping_timeout: 100s

discovery.zen.ping.timeout: 100s

discovery.zen.minimum_master_nodes: 3

discovery.zen.ping.unicast.hosts:

- 172.18.1.22:9300

- 172.18.1.23:9300

- 172.18.1.24:9300

- 172.18.1.25:9300

- 172.18.1.26:9300

discovery.zen.ping.multicast.enabled 這個設定把組播的自動發現給關閉了,為了防止其他機器上的節點自動連入。

discovery.zen.fd.ping_timeout和discovery.zen.ping.timeout是設定了節點與節點之間的連線ping時長

discovery.zen.minimum_master_nodes 這個設定為了避免腦裂。比如5個節點的集群,如果設定為3,那麼當一台節點脫離後,按照上面的情況重新選擇master要超過3個投票才可以成為master節點,並不會出現腦裂現象。

discovery.zen.ping.unicast.hosts 這個設定了自動發現的節點。

action.auto_create_index: false 這個設定了自動發現的節點。2、elasticsearch選舉master機制

對所有可以成為master的節點根據nodeid排序,每次選舉每個節點都把自己所知道節點排一次序,然後選出第乙個(第0位)節點,暫且認為它是master節點。

如果對某個節點的投票數達到一定的值(可以成為master節點數n/2+1)並且該節點自己也選舉自己,那這個節點就是master。否則重新選舉。

注意:這裡理解的是有機會成為master節點的機器擁有投票權,如果僅僅是資料節點應該不具備選舉權。

3、可能產生「腦裂」的原因?

(1)網路原因 內網一般不會出現此問題,可以監控內網流量狀態。外網的網路出現問題的可能性大些。

(2)節點負載 由於master節點與data節點都是混合在一起的,所以當工作節點的負載較大(確實也較大)時,導致對應的es例項停止響應,而這台伺服器如果正充當著master節點的身份,那麼一部分節點就會認為這個master節點失效了,故重新選舉新的節點,這時就出現了腦裂; 這裡最好是master節點和資料節點分開。

(3)**記憶體 由於data節點上es程序占用的記憶體較大,較大規模的記憶體**操作也能造成es程序失去響應。

4、應對「腦裂」的解決辦法

推測出原因應該是由於節點負載導致了master程序停止響應,繼而導致了部分節點對於master的選擇出現了分歧。為此,乙個直觀的解決方案便是將master節點與data節點分離。

可以用上面說到的配置來限制其角色:

node.master: true

node.data: false其他節點設定,這樣master節點和data節點就分開了node.master: false

node.data: truediscovery.zen.ping_timeout(預設值是3秒,可以設定為120s):預設情況下,乙個節點會認為,如果master節點在3秒之內沒有應答,那麼這個節點就是死掉了,而增加這個值,會增加節點等待響應的時間,從一定程度上會減少誤判。

discovery.zen.minimum_master_nodes(預設是1):這個引數控制的是,乙個節點需要看到的具有master節點資格的最小數量,然後才能在集群中做操作。官方的推薦值是(n/2)+1(向下取整),其中n是具有master資格的節點的數量。

es配置項解釋以及腦裂問題

1 elasticsearch重要配置項解釋 cluster.name elasticsearch wylnode.name node1 path.data opt elasticsearch data path.logs opt elasticsearch logs node.master tru...

JQuery DataTable的配置項及事件

當我們需要在載入或者顯示 的時候,改變jquery datatable 的資料,或增加一些html標籤處理。可以通過jquery datatable的 函式處理。例項 if otable null var detail pages detail detail.aspx?oper edit id ot...

軟體配置及軟體配置項簡介

什麼是軟體配置項?一般認為 軟體生存週期各個階段活動的產物經審批後即可稱之為軟體配置項。軟體配置項包括 與合同 過程 計畫和產品有關的文件和資料 源 目標 和可執行 相關產品,包括軟體工具 庫內的可重用軟體 外購軟體及顧客提供的軟體等。軟體配置 相關 在軟體建立時變更是不可避免,而變更更回劇了專案中...