안녕하세요! 프뚜입니다.
Zookeeper를 이용한 Solr Cluster SolrJ 사용 방법은 링크를 통해 확인할 수 있습니다.
3개 이상의 Zookeeper Cluster 연동을 합니다.
N개 이상의 Solr를 Zookeeper에 연동합니다.
[개발 환경]
- Windows 10 64 bit
- Solr 7.6.0
- Zookeeper 3.4.11
# Zookeeper 다운로드하기 (링크)
프뚜와 같은 버전을 다운받기 위해 링크를 제공합니다. gz파일은 반디집을 통해 압축 해제가 가능합니다.
# Zookeeper 세팅하기
주키퍼 서버 3개를 구현하기 위해서 압축을 3번 해제합니다.
D:\Tools\zookeeper-3.4.11_1 경로에 data 폴더를 생성합니다. myid라는 파일을 생성하고 안에 숫자 1을 입력하고 저장합니다. 2번, 3번에는 2, 3의 숫자를 입력합니다.
D:\Tools\zookeeper-3.4.11_1\conf\zoo_sample.cfg를 복사해서 zoo.cfg를 생성합니다.
tickTime=2000
initLimit=10
syncLimit=5
# 2023.01.10[프뚜]: 1번(2181) 2번(2182) 3번(2183)
clientPort=2181
# 2023.01.10[프뚜]: 해당 폴더 경로를 확인
dataDir=D:/Tools/zookeeper-3.4.11_1/data
dataLogDir=D:/Tools/zookeeper-3.4.11_1/log
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
zookeeper-3.4.11_1, zookeeper-3.4.11_2, zookeeper-3.4.11_3 폴더에 동일하게 수정합니다. Port와 경로를 잘 확인해야합니다. (공식 홈페이지 참조 링크)
# Zookeeper 실행하기
D:\Tools\zookeeper-3.4.11_1\bin\zkServer.cmd
D:\Tools\zookeeper-3.4.11_2\bin\zkServer.cmd
D:\Tools\zookeeper-3.4.11_3\bin\zkServer.cmd
서버가 정상적으로 실행되면 하나의 LEADING와 여러 개의 FOLLOWING으로 나눠집니다.
2023-01-10 08:29:12,991 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2183:QuorumPeer@991] - LEADING
2023-01-10 08:29:12,991 [myid:2] - INFO [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2182:QuorumPeer@979] - FOLLOWING
2023-01-10 08:29:13,027 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer@979] - FOLLOWING
3번이 LEADING이 되고, 나머지 myid들이 FOLLOWING로 됨을 확인할 수 있습니다.
# Solr 다운로드하기 (링크)
프뚜와 같은 버전을 다운받기 위해 링크를 제공합니다.
# Solr 세팅하기
D:\Tools\solr-7.6.0\server\solr
D:\Tools\solr-7.6.0\server\solr2
D:\Tools\solr-7.6.0\server\solr3
D:\Tools\solr-7.6.0\server\solr 폴더를 복사해서 2, 3을 생성합니다.
<solr>
<solrcloud>
<str name="host">${host:}</str>
<!-- 2023.01.10[프뚜]: port를 변경 -->
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
<str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DefaultZkCredentialsProvider}</str>
<str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DefaultZkACLProvider}</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
</shardHandlerFactory>
</solr>
각 폴더 안에 solr.xml을 열어서 port를 수정합니다. 1번(8983) 2번(8984) 3번(8985)로 변경합니다.
# Solr 실행하기
solr.cmd -c -p 8983 -s D:\Tools\solr-7.6.0\server\solr -z "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
solr.cmd -c -p 8984 -s D:\Tools\solr-7.6.0\server\solr2 -z "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
solr.cmd -c -p 8985 -s D:\Tools\solr-7.6.0\server\solr3 -z "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
-c: 클러스터 모드로 실행합니다.
-p: port를 지정합니다. (solr.xml에 선언 되어있어서 필수 옵션은 아닙니다.)
-s: 경로를 지정합니다.
-z: 주키퍼에 연결합니다.
127.0.0.1:8983 > Cloud > Nodes에서 3개의 솔라가 연동되어있음을 확인할 수 있습니다.
설정한 파일에 대해서 링크를 통해 공유합니다.
'프로그램 > ETC' 카테고리의 다른 글
[프리미어 2022] Adobe Premeiere Pro 2022 (정품) 크랙 버전 다운로드 (18) | 2023.01.24 |
---|---|
[IntelliJ] 인텔리제이 코드 컨벤션 추가 및 설정하기 (0) | 2023.01.16 |
[Nginx] 413 Payload Too Large (Request Entity Too Large) 오류 해결하기 (1) | 2023.01.14 |
[Nginx] nginx version 제거하기 (1) | 2023.01.03 |
[JavaScript] XSS 공격 방지, escape / unEscape 함수 만들기 (1) | 2023.01.02 |