This repository has been archived on 2025-10-21 . You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Code
Clone this repository
Search code…
Latest commit message
- build.gradle.kts에 새로운 실행 태스크(runCacheBackupDemo, runSqlBackupDemo) 추가 - README.md에 백업 기능 및 데모 실행 방법 추가 - IgniteSnapshotCreateDemo 및 IgniteSnapshotRestoreDemo 클래스 삭제 - SnapshotCreator 및 SnapshotRestorer 클래스 삭제 - ignite-cluster.properties 파일에서 클라이언트 모드 설정 변경 - log4j2.xml에서 로그 레벨 조정 및 불필요한 로거 제거 - 테스트 클래스 삭제 및 관련 코드 정리
Apache Ignite Management Framework
Apache Ignite 클러스터 관리 및 백업 시스템을 위한 Java 관리 프레임워크입니다.
주요 기능
- 클러스터 관리: 클러스터 활성화/비활성화, 베이스라인 토폴로지 관리
- CRUD 작업: 캐시 기본 작업 (Create, Read, Update, Delete)
- Cache Dump 백업: Key-Value 데이터의 엔트리별 백업 및 복원
- SQL COPY 백업: SQL 테이블 데이터의 CSV 백업 및 복원
- Spark 통합: Apache Spark와의 연동 기능
기술 스택
- Apache Ignite: 2.17.0
- Apache Spark: 2.4.8
- Scala: 2.11.12
- Java: 11
빌드 및 실행
빌드
./gradlew build
./gradlew test
데모 실행
캐시 백업 데모
./gradlew runCacheBackupDemo
SQL 백업 데모
./gradlew runSqlBackupDemo
서버 데모
./gradlew runServerDemo
백업 기능
SimpleCacheBackup - Key-Value 백업
- 특징: 캐시 데이터를 CSV 형태로 백업/복원
- 지원: 인메모리 + 영구 캐시 모두 지원
- 이식성: 다른 클러스터로 이전 가능
- 기능:
- 개별 캐시 백업/복원
- 전체 캐시 백업
- 백업 파일 관리
- 캐시 크기 조회
SqlCopyBackup - SQL 백업
- 특징: SQL 테이블을 CSV + 스키마로 백업/복원
- 지원: 데이터 + 스키마 백업
- 복원: COPY 명령어를 통한 자동 복원
- 기능:
- 개별 테이블 백업/복원
- 전체 테이블 백업
- 스키마 스크립트 생성
- 테이블 목록 조회
실제 구현 특징
- Mock 없음: 실제 Apache Ignite와 연동
- 완전 자동화: 클러스터 시작부터 백업까지 전체 프로세스
- 실용적: 운영 환경에서 바로 사용 가능
- 에러 처리: 완전한 예외 처리 및 리소스 정리
설정
클러스터 활성화
Control Script 사용:
- Windows:
control.bat --set-state ACTIVE - Linux/Mac:
control.sh --set-state ACTIVE
Java API 사용:
cluster.state(ClusterState.ACTIVE)
설정 파일
src/main/resources/ignite-cluster.properties:
ignite.host=localhost
ignite.port=10800
ignite.timeout=30000
ignite.retry.attempts=3
ignite.retry.delay=1000
ignite.baseline.auto.adjust.enabled=true
ignite.baseline.auto.adjust.timeout=300000
ignite.cluster.tag=production-cluster
라이센스
Apache License 2.0