由於ES單實例最大配置內存不能超過32G,在Elasticsearch集羣部署時,難免遇到要在超過32G的服務器上部署多個ES實例,那麼問題來了,ES默認配置一臺服務器只允許一個實例運行,所以我們需要給 elasticsearch.yml 添加一個配置項:
node.max_local_storage_nodes:
6
上述配置項表示本機最大可運行6個實例,數字6可以根據需求更改。
單機多實例解決了,就會產生另外一個嚴重的問題,即我們爲Elasticsearch配置副本分片如果比較少,例如一個副本,那麼如果這些數據存在了同一機器上,一旦機器宕機將丟失這些數據,這是無法原諒的,官方爲我們提供瞭解決方案:
https://www.elastic.co/guide/en/elasticsearch/reference/current/shards-allocation.html
即添加配置:
cluster.routing.allocation.same_shard.host:true
表示允許檢查防止同一主機多個實例分配同一分片。