템플릿 폴더에 다음과 같은 추가 사항을 제안합니다:
- postgres.master.yml
- postgres.slave.yml
- redis.master.yml
- redis.slave.yml
이렇게 하면 Discourse 클러스터링과 이 주제에 대한 모든 고민이 사라질 것입니다.
제 이해로는 Redis 컨테이너는 메시지 버스의 고유한 트랜잭션 때문에 복제할 수 없다고 생각했지만, 실제로는 복제(replication)가 가능한 것으로 보입니다.
아키텍처적 이점?
-
마스터 노드에는 (web.template.yml + web.template.yml + redis.master.yml)만, 슬레이브 노드에는 (web.template.yml + postgres.slave.yml + redis.slave.yml)만 부트스트랩할 수 있습니다. 마스터 노드에 대한 참조가 불필요하므로 부하가 크게 줄어들며, 그 앞에 배치된 Nginx 로드 밸런서의 성능을 활용할 수 있습니다.
-
관리자 대시보드 내에 UI 클러스터링 섹션을 지원하는 야심 찬 계획이 실현 가능해집니다!
Discourse는 아마도 지금까지 만들어진 가장 진보된 오픈소스 애플리케이션일 것입니다. 이 최첨단 제품을 만든 팀에 감사드립니다.