Skip to content

Latest commit

Β 

History

History
92 lines (67 loc) Β· 3.8 KB

File metadata and controls

92 lines (67 loc) Β· 3.8 KB

Monitory Data Source

IoT, ν™˜κ²½, μ„€λΉ„, μ›¨μ–΄λŸ¬λΈ” λ“± λ‹€μ–‘ν•œ μ„Όμ„œ 데이터λ₯Ό AWS Kinesis, MQTT λ“±μ—μ„œ μˆ˜μ§‘ν•˜μ—¬ Flink둜 μ‹€μ‹œκ°„ μ²˜λ¦¬ν•˜κ³ , Kafka 및 S3 λ“±μœΌλ‘œ μ €μž₯/μ „μ†‘ν•˜λŠ” 데이터 슀트림 νŒŒμ΄ν”„λΌμΈμž…λ‹ˆλ‹€.

πŸ—οΈ ν”„λ‘œμ νŠΈ ꡬ쑰

.
β”œβ”€β”€ src/main/java/com/monitory/data/
β”‚   β”œβ”€β”€ FlinkSourceApplication.java      # 메인 μ‹€ν–‰ 파일
β”‚   β”œβ”€β”€ config/                         # Kafka, MQTT μ„€μ • λ‘œλ”
β”‚   β”œβ”€β”€ sinks/                          # S3, Kafka λ“± Sink κ΄€λ ¨ 클래슀
β”‚   β”œβ”€β”€ sources/                        # Kinesis, MQTT λ“± Source κ΄€λ ¨ 클래슀
β”‚   β”œβ”€β”€ transformations/                # 데이터 λ³€ν™˜/가곡 둜직
β”‚   └── utils/                          # μœ ν‹Έλ¦¬ν‹° 클래슀
β”œβ”€β”€ src/main/resources/
β”‚   β”œβ”€β”€ application.properties          # ν™˜κ²½λ³„ μ„€μ • 파일 (gitignore)
β”‚   β”œβ”€β”€ certs/                          # μΈμ¦μ„œ 폴더 (gitignore)
β”‚   β”œβ”€β”€ log4j.properties                # 둜그 μ„€μ •
β”‚   └── flink-conf.yaml                 # Flink μ„€μ •
β”œβ”€β”€ build.gradle                        # Gradle λΉŒλ“œ 슀크립트
β”œβ”€β”€ Dockerfile                          # Docker 이미지 λΉŒλ“œ 파일
β”œβ”€β”€ Jenkinsfile                         # Jenkins CI/CD νŒŒμ΄ν”„λΌμΈ
└── ...

πŸš€ μ£Όμš” κΈ°λŠ₯

  • AWS Kinesis, MQTT λ“± λ‹€μ–‘ν•œ μ†ŒμŠ€μ—μ„œ μ‹€μ‹œκ°„ 데이터 μˆ˜μ§‘
  • Flink 기반 μ‹€μ‹œκ°„ 슀트림 처리 및 μ΄μƒμΉ˜/라벨링 λ³€ν™˜
  • Kafka 토픽별 데이터 λΆ„λ₯˜ 및 전솑
  • S3둜 μ‹œκ°„/μž₯비별 집계 데이터 μ €μž₯
  • Prometheus 기반 λͺ¨λ‹ˆν„°λ§ 지원

βš™οΈ λΉŒλ“œ 및 μ‹€ν–‰

1. ν™˜κ²½ μ€€λΉ„

  • Java 11 이상 (Amazon Corretto 11 ꢌμž₯)
  • Gradle 8.x
  • AWS 자격증λͺ… 및 S3, Kinesis, Kafka, MQTT 브둜컀 μ ‘κ·Ό κΆŒν•œ ν•„μš”

2. λΉŒλ“œ

./gradlew build
  • μ‹€ν–‰ νŒŒμΌμ€ build/libs/monitory-data-1.0-SNAPSHOT.jar둜 μƒμ„±λ©λ‹ˆλ‹€.

3. μ‹€ν–‰

java -jar build/libs/monitory-data-1.0-SNAPSHOT.jar

λ˜λŠ” Docker둜 μ‹€ν–‰:

docker build -t monitory-data .
docker run --env-file .env -p 8081:8081 monitory-data

4. ν™˜κ²½μ„€μ •

  • src/main/resources/application.properties에 Kafka, MQTT, AWS λ“± μ—°κ²° 정보λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μΈμ¦μ„œ νŒŒμΌμ€ src/main/resources/certs/에 μœ„μΉ˜ν•΄μ•Ό ν•˜λ©°, gitμ—λŠ” ν¬ν•¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

πŸ“ μ£Όμš” 클래슀

πŸ› οΈ 개발/운영 μ°Έκ³ 

  • CI/CD: Jenkins, GitHub Actions, ArgoCD, Slack 연동
  • 둜그: log4j μ„€μ •(log4j.properties)
  • Flink μ„€μ •: flink-conf.yaml μ°Έκ³ 

πŸ“„ λΌμ΄μ„ μŠ€

λ³Έ ν”„λ‘œμ νŠΈλŠ” Apache 2.0 λΌμ΄μ„ μŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.


문의 및 κΈ°μ—¬λŠ” Issues λ˜λŠ” PR둜