elasticsearch cluster를 구성하는 방법에 대해 설명한다.
cluster를 구성하면 master 노드에서 장애가 발생해도 slave 노드를 통해서 계속해서 서버를 이용할 수 있다.
다음 과정을 통해서 cluster 구성할 수 있다.
1. 테스트 하기 위해 2개의 노드(서버)를 위한 시스템을 준비한다.
master 서버: 192.168.0.3
slave 서버: 192.168.0.4
2. 서버의 환경설정 파일 수정한다.
가) master 서버
- cluster.name=cluster_test (2개 노드 모두 동일한 이름을 설정해야 한다)
- node.name=test_1_node (2개 노드 각각 다른이름으로 설정해야 한다)
- master=true, data=true (master 노드이면서, data 노드 역할 하도록 설정)
나) slave 서버
- cluster.name=cluster_test (2개 노드 모두 동일한 이름을 설정해야 한다)
- node.name=test_2_node (2개 노드 각각 다른이름으로 설정해야 한다)
- discovery.zen.ping.unicast.hosts: ["192.168.0.3:9300"] (master 서버의 ip를 설정한다)
- master=false, data=true (data 노드 역할만 하도록 설정)
3. 상기 2개의 서버를 실행한다.
4. 동기화 과정 확인
master 서버에 데이터를 추가하면 slave에도 동일한 데이터가 추가되는 것을 확인할 수
있다.
이는 동기 방식으로 업데이트 된다. 즉, client가 master 서버에 insert하면 slave에도
데이터를 추가한후 client쪽으로 response 한다.
참고로 mysql replication은 비동기 방식으로 업데이트 된다. client가 master 서버에
insert하면 바로 client에 reponse를 보낸다. 이후 slave 서버에서 쓰레드에 의해서 동기화
과정을 진행한다.
5. dual master server 방식
가) 192.168.0.4 시ㅁ스템 수정
- master=true, data=true (master 노드이면서, data 노드 역할 하도록 설정)
나) 192.168.0.3 시스템 수정
- discovery.zen.ping.unicast.hosts: ["192.168.0.4:9300"] (master 서버의 ip를 설정한다)
이와같이 elasticsearch cluster를 구성할 수 있다.
0 개의 댓글