elasticsearch5.x 시리즈의 8 냉열 데이터 분리 방안, 설탕

Elasticsearch 집단의 비교적 두드러진 문제는 사용자가 큰 조회를 할 때 매우 많은 읽기 IO와 집합 계산으로 인해 기계의 Load가 높아지고 CPU 사용률이 상승하며 새로운 데이터의 쓰기에 영향을 줄 수 있으며 이 과정은 심지어 몇 분 동안 지속될 수 있다는 것이다.따라서 MySQL 클러스터처럼 읽기와 쓰기를 분리해야 할 수도 있습니다.
구현 방안 N대의 기계는 열 데이터의 저장을 하고 그 위에 그날의 데이터만 놓는다.이 N대 열 데이터 노드 위에 있는elasticsearc.yml에서 node를 설정합니다.attr.tag: 핫 이전의 데이터는 다른 M 기기에 놓여 있습니다.이 M 냉각 데이터 노드에 node를 설정합니다.attr.tag: stale 템플릿에서 새 색인에 hot 태그 추가를 제어합니다.
{
    "order" : 0,
    "template" : "*",
    "settings" : {
      "index.routing.allocation.include.tag" : "hot"
    }
}

매일 색인 설정을 업데이트할 계획입니다. tag를stale로 변경하면 색인은 자동으로 M대 냉각 데이터 노드로 이동합니다
curl -XPUT http://127.0.0.1:9200/indexname/_settings -d'
{
   "index": {
      "routing": {
         "allocation": {
            "include": {
               "tag": "stale"
            }
         }
     }
   }
}'

이렇게 하면 쓰기 작업은 N대 열 데이터 노드에 집중되고 넓은 범위의 읽기 작업은 M대 냉각 데이터 노드에 집중된다.막힌 영향을 피했다.
이 방안은 Elasticsearch의 allocation filter 기능을 활용하고 있습니다. 상세한 설명은 다음과 같습니다.https://www.elastic.co/guide/en/elasticsearch/reference/master/shard-allocation-filtering.html

좋은 웹페이지 즐겨찾기