관련 문서 :
https://line.github.io/centraldogma/client-java.html#specifying-multiple-hosts
embedded zookeper
를 통해서 master-slave
구조를 지원하기에,
docker 사용하여 3대의 central dogma를 설정합니다..
각 설정 파일은 /opt/centraldogma/conf/
경로에 위치하면,
해당 파일을 기반으로 central dogma 가 설정됩니다.
master-slave
구조 설정은
*.conf
파일의 replication
을 통해서 설정 가능합니다.
처음에 같이 뜰 때에는 cpu 사용량이 크지 않지만,
1대가 떨어졌다 다시 붙을 때에는 해당 설정에서 cpu 가 120% 까지 많이 치솟습니다.
docker-compose 파일
version: '3.9'
services:
central_dogma1:
image: line/centraldogma
ports:
- "36461:36462"
deploy:
resources:
limits:
cpus: '1'
memory: 800M
volumes:
- ./central_config_1.json:/opt/centraldogma/conf/dogma.json
networks:
central_dogma:
ipv4_address: 172.21.0.2
central_dogma2:
image: line/centraldogma
ports:
- "36462:36462"
volumes:
- ./central_config_2.json:/opt/centraldogma/conf/dogma.json
deploy:
resources:
limits:
cpus: '1'
memory: 800M
networks:
central_dogma:
ipv4_address: 172.21.0.3
central_dogma3:
image: line/centraldogma
ports:
- "36466:36462"
volumes:
- ./central_config_3.json:/opt/centraldogma/conf/dogma.json
deploy:
resources:
limits:
cpus: '1'
memory: 800M
networks:
central_dogma:
ipv4_address: 172.21.0.4
networks:
central_dogma:
driver: bridge
ipam:
config:
- subnet: 172.21.0.0/16
gateway: 172.21.0.1
central dogma 설정 파일
위 3대의 central dogma 중 serverId : 3 에 해당하는 설정 파일
"replication" : {
"method": "ZOOKEEPER",
"serverId": 3,
"servers": {
"1": {
"host": "172.21.0.2",
"quorumPort": 36463,
"electionPort": 36464,
"groupId": null,
"weight": null
},
"2": {
"host": "172.21.0.3",
"quorumPort": 36463,
"electionPort": 36464,
"groupId": null,
"weight": null
},
"3": {
"host": "172.21.0.4",
"quorumPort": 36463,
"electionPort": 36464,
"groupId": null,
"weight": null
}
},