반응형
1️⃣ vtctld (Vitess Control Daemon)
✅ "Vitess 클러스터를 제어하는 중앙 관리자"
🔹 역할
- 클러스터 전반을 관리하는 제어 인터페이스
- vtctlclient 명령어를 통해 Vitess 클러스터 관리
- vtctld가 실행되어야 vtctlclient를 사용할 수 있음
- 웹 UI를 제공하여 클러스터의 상태를 모니터링 가능
🔹 주요 기능
- 토폴로지 관리: 새로운 Cell 추가, Keyspace 및 Shard 생성
- 테이블 분할 (Resharding): 데이터 샤딩을 조정
- 테이블 관리: 테이블 백업, 복구
- 데이터베이스 변경: 스키마 변경 관리
🔹 실행 예시
vtctld --topo_implementation=etcd2 \\
--topo_global_server_address=localhost:2379 \\
--topo_global_root=/vitess/global \\
--log_dir=/tmp \\
--port=15000 &
2️⃣ vtgate
✅ "Vitess SQL 프록시 - 쿼리를 적절한 샤드로 라우팅"
🔹 역할
- 클라이언트(MySQL Client, Application)의 요청을 받아 적절한 vttablet에 전달
- 샤딩(sharding)된 데이터베이스를 하나의 단일 MySQL 인스턴스처럼 보이게 함
- MySQL 프로토콜을 지원하므로, 일반적인 MySQL 클라이언트와 호환됨
🔹 주요 기능
- 쿼리 라우팅: 적절한 샤드 및 vttablet으로 SQL 요청 전달
- 로드 밸런싱: 여러 vttablet 간 부하 분산
- 자동 Failover 지원: Primary-Replica 전환 시 클라이언트 요청을 자동 조정
🔹 실행 예시
vtgate --topo_implementation=etcd2 \\
--topo_global_server_address=localhost:2379 \\
--topo_global_root=/vitess/global \\
--log_dir=/tmp \\
--port=15099 \\
--mysql_server_port=15306 &
🔹 MySQL 클라이언트에서 vtgate에 접속할 수 있음
mysql -h 127.0.0.1 -P 15306 -u root
3️⃣ vttablet
✅ "Vitess에서 MySQL을 제어하는 Agent"
🔹 역할
- Vitess와 MySQL 간의 인터페이스 역할
- vtgate가 요청을 보낼 때, 데이터를 실제로 처리하는 실행 주체
- Primary/Replica MySQL 인스턴스를 관리
- MySQL의 복제(replication) 관리
🔹 주요 기능
- 쿼리 실행: vtgate에서 전달받은 쿼리를 MySQL에서 실행
- 복제 관리: Primary/Replica 역할을 자동으로 조정
- Health Check: MySQL 상태 모니터링
🔹 실행 예시
vttablet --topo_implementation=etcd2 \\
--topo_global_server_address=localhost:2379 \\
--topo_global_root=/vitess/global \\
--log_dir=/tmp \\
--tablet-path=cell-0000000100 \\
--port=15001 \\
--grpc_port=16001 \\
--service_map=grpc-vttablet &
🔹 tablet-path는 각 인스턴스를 식별하는 값 (환경에 따라 변경 필요)
4️⃣ vtorc (Vitess Orchestrator)
✅ "MySQL 복제(Replication) 모니터링 및 장애 복구"
🔹 역할
- MySQL의 Primary/Replica 구조를 지속적으로 감시
- Primary 장애 발생 시, 자동으로 새로운 Primary 선출
- MySQL 복제 설정을 자동으로 조정
🔹 주요 기능
- 자동 장애 감지 및 복구
- Primary-Failover 관리
- 복제 상태 모니터링 및 로깅
🔹 실행 예시
vtorc --topo_implementation=etcd2 \\
--topo_global_server_address=localhost:2379 \\
--topo_global_root=/vitess/global \\
--log_dir=/tmp \\
--port=15080 &
📌 정리: Vitess 핵심 서비스 비교
서비스 역할 주요 기능
| vtctld | Vitess 관리 UI | 클러스터 토폴로지 관리, 키스페이스 관리 |
| vtgate | SQL 요청 라우팅 | 샤딩 관리, 로드 밸런싱, MySQL 클라이언트 호환 |
| vttablet | MySQL 인터페이스 | SQL 실행, 복제 관리, MySQL 상태 체크 |
| vtorc | 복제 및 장애 복구 | Primary-Failover, 자동 장애 복구 |
🚀 결론
- vtctld → 관리자용 도구 (클러스터 제어)
- vtgate → SQL 프록시 (쿼리 분산 및 샤딩 관리)
- vttablet → MySQL 제어 (쿼리 실행 및 복제 관리)
- vtorc → MySQL 장애 감지 및 복구
이 네 가지 서비스는 Vitess 클러스터가 정상적으로 동작하는 데 핵심적인 요소입니다.
Vitess를 운영할 때, 서버를 재부팅하면 이 4가지 서비스를 반드시 다시 실행해야 합니다. 🚀
반응형
'기술, 개발 > Vitess' 카테고리의 다른 글
| Vitess 수평샤딩 2 (리샤딩) (2) | 2025.08.28 |
|---|---|
| Vitess 수평 샤딩 1 (시퀀스) (0) | 2025.08.28 |
| Vitess MoveTables (수직샤딩) (1) | 2025.08.28 |
| Vitess 기본 개념 (0) | 2025.08.28 |
| 로키리눅스 vitess 설치 (0) | 2025.08.28 |