마이크로서비스 기술스택
공통 기술 스택
- Backend: Java 21, Spring Boot 3.2.0, Gradle
- Frontend: React 18+, Vite, pnpm
- Container: Docker, Eclipse Temurin 21-jdk
- Database: MySQL 8.3.0 (HikariCP 커넥션 풀)
- Messaging: Kafka (snappy 압축)
서비스별 특이사항
Data Ingestion 서비스
- 네트워크: Netty 4.1.104 (Boss 1, Worker 8, Port 8992)
- Kafka: Producer 배치 (16KB, linger 10ms)
- DB: 읽기 전용 (Pool Size: 5, Min Idle: 2)
- JVM: Dockerfile에 명시적 옵션 있음 (
-Xmx512m -Xms256m)
API 서비스 (Backend, Admin Backend)
- DB 커넥션 풀: Max 10, Min Idle 5
- 파일 업로드: 최대 50MB
- 보안: OAuth2, Spring Security
- JVM: 옵션 없음 (기본값 의존)
Message Processor
- Kafka Consumer: Group ID 지정, earliest offset, Max Poll 10, Concurrency 1, Manual ACK
- Query: QueryDSL 5.0.0
- Search: OpenSearch 2.8.1 (선택적)
JVM 옵션 권장사항
API 서비스와 Processor에 명시적 JVM 옵션 추가 권장:
ENV JAVA_OPTS="-Xmx1536m -Xms1024m -XX:MaxMetaspaceSize=256m"
현재는 K8s Limit으로 제한되므로 긴급하지 않지만, 명시적으로 설정하면 OOM 시 디버깅이 쉬워진다.