No description
- Java 99.1%
- C# 0.3%
- C++ 0.2%
- JavaScript 0.1%
- build.gradle.kts에 새로운 실행 태스크(runCacheBackupDemo, runSqlBackupDemo) 추가 - README.md에 백업 기능 및 데모 실행 방법 추가 - IgniteSnapshotCreateDemo 및 IgniteSnapshotRestoreDemo 클래스 삭제 - SnapshotCreator 및 SnapshotRestorer 클래스 삭제 - ignite-cluster.properties 파일에서 클라이언트 모드 설정 변경 - log4j2.xml에서 로그 레벨 조정 및 불필요한 로거 제거 - 테스트 클래스 삭제 및 관련 코드 정리 |
||
|---|---|---|
| .cursor/rules | ||
| apache-ignite | ||
| backup/sql | ||
| gradle/wrapper | ||
| ignite | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
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