37 Commits

Author SHA1 Message Date
63d2f91713 Merge pull request '[#7] 테스트 스크립트 실행을 위한 나머지 환경 추가 및 테스트 진행' (#8) from infra/#7 into main
Reviewed-on: #8
2025-06-27 06:09:36 +00:00
77ee1dff8c refactor: ConsumerWorker에서의 메서드 및 변수 분리
- finally 구문에서 실행되는 종료 로직을 closeAfterManualCommit() 으로 분리

- consumer.commitAsync에 들어가는 OffsetCommitCallback을 변수로 분리
2025-06-27 15:07:15 +09:00
c348ae6dbd fix: 프로젝트명 & 패키지명 수정 반영 2025-06-27 14:52:33 +09:00
1eb46b7921 test: 테스트에 사용되는 레코드 추가 기능 구현 2025-06-27 14:49:06 +09:00
ad56fa909a test: 테스트를 위한 토픽 관리용 AdminClient 및 관련 처리 로직 추가 2025-06-27 14:48:31 +09:00
ebd003b79e Merge pull request '[#5] 컨슈머 코드 마이그레이션' (#6) from feature/#5 into main
Reviewed-on: #6
2025-06-27 05:43:39 +00:00
8ff8584a31 refactor: DLTProducerTest에서 불필요한 컨슈머 연결 방지를 위한 컨슈머 Mocking
- Kafka 클러스터 실행 없이 테스트를 진행해도 정상 동작해야 함.
2025-06-27 14:38:29 +09:00
54328767b9 feat: 컨슈머 설정 클래스 구현
- 컨슈머 관련 설정 + 메트릭 측정을 위한 MeterBinder 빈
- KafkaConsumer는 Thread-Safe하지 않기에 빈 등록 X
2025-06-27 14:37:05 +09:00
c891e26b8a feat: 컨슈머 기능 구현
- 3개의 워커스레드 생성 및 실행
- 스프링의 PreDestroy를 이용한 shutdown 로직 구현
2025-06-27 14:36:10 +09:00
bad7b5725e feat: 컨슈머 워커 스레드 기능 구현
- 오프셋 비동기 커밋 & 예외 처리 & shutdown 기능 구현
2025-06-27 14:35:10 +09:00
e4b86e6f21 feat: 컨슈머 레코드 처리 기능 구현
- 메트릭 측정(ref: ce20f85c)을 위한 로직
- 레코드 자체를 처리하는 비즈니스 로직은 없음.
2025-06-27 14:34:13 +09:00
69bd95b981 feat: 컨슈머 리밸런스 발생시 처리 기능 구현
- 일단 로깅 및 Manual Commit만 진행
2025-06-27 14:32:11 +09:00
26f39596f0 feat: application.yml의 workerThreads로 지정된 값 만큼의 스레드 풀 및 크기값을 가지는 클래스
- 스레드 풀이 필요한 곳, 단순히 스레드 수가 필요한 곳 모두에서 사용하기 위함.
2025-06-27 14:31:19 +09:00
ce20f85c04 feat: Plaintext와 Ssl에서의 전송 시간 메트릭 측정에 사용되는 ConsumerStats 클래스 2025-06-27 14:29:46 +09:00
3e9e8ebe2a feat: 로컬에서의 정상 실행을 확인하기 위한 카프카 클러스터 실행용 스크립트 2025-06-27 14:27:55 +09:00
bc79ff7035 Merge pull request '[#3] 컨슈머를 제외한 나머지 애플리케이션 코드 마이그레이션' (#4) from feature/#3 into main
Reviewed-on: #4
2025-06-27 05:20:06 +00:00
b0456c18a2 test: Dead Letter Topic 프로듀서 재시도 테스트
- ref: 1f60a0ff
2025-06-27 14:13:33 +09:00
1f60a0ff33 feat: Dead Letter Topic 프로듀서 기능 구현
- 최대 5회 재시도. 재시도 실패시 인메모리 컬렉션에 저장
2025-06-27 14:11:16 +09:00
fcc5fcffe6 feat: Dead Letter Topic 프로듀서 설정 클래스
- KafkaProducer는 Thread-Safe이기에 Bean으로 등록하여 사용함.
2025-06-27 14:09:57 +09:00
c6b21da23e feat: 컨슈머, 프로듀서에서 모두 쓰이는 Configuration 클래스
- 현재는 Dead Letter Topic 프로듀서 Bean만 등록
2025-06-27 14:03:26 +09:00
b6e6484cb0 feat: 카프카 설정값을 담는 KafkaProperties 클래스 및 ConfigurationProperties 적용을 위한 application.yml 설정 2025-06-27 14:02:14 +09:00
ef8c526fec feat: 테스트용 레코드 클래스와 직렬화, 역직렬화 클래스 2025-06-27 13:57:35 +09:00
c48e2cdf4a Merge pull request '[Infra/#1]: 컨테이너 실행을 위한 Docker 및 자동화 스크립트 추가' (#2) from infra/#1 into main
Reviewed-on: #2
2025-06-27 04:34:30 +00:00
597c0e012c feat: 카프카 클라이언트 배포를 위한 Dockerfile 및 compose 2025-06-27 13:30:55 +09:00
aefce3563c feat: Grafana & Prometheus & Kafka UI 배포를 위한 docker-compose 2025-06-27 13:30:38 +09:00
95f4acab65 feat: 카프카 브로커 배포용 docker-compose 2025-06-27 13:30:22 +09:00
0e06037152 feat: 카프카 브로커 및 클라이언트 애플리케이션 메트릭 수집을 위한 프로메테우스 설정 2025-06-27 13:29:47 +09:00
8f0d7ca96a feat: 그라파나 프로비저닝 환경 설정 파일
- 대시보드 및 프로메테우스 Datasource 설정
2025-06-27 13:28:46 +09:00
cacca1b44e feat: 카프카 메트릭 측정을 위한 JMX 설정 파일 2025-06-27 13:27:43 +09:00
09d274216e feat: 테스트 실행 자동화 스크립트 2025-06-27 13:27:02 +09:00
0c1e2ea963 feat: ssl 전송을 위한 인증서 발급 스크립트 2025-06-27 13:26:35 +09:00
f583878bd4 docs: update README 2025-06-27 13:15:41 +09:00
17b739b72b docs: update README 2025-06-25 01:44:40 +09:00
1445012a38 docs: upload README 2025-06-25 01:20:06 +09:00
9dccf578ab load templates for publishing issue or pull requests 2025-06-25 00:10:35 +09:00
e75a481d18 initialize projects 2025-06-25 00:06:05 +09:00
15885f8feb Initial commit 2025-06-24 14:58:16 +00:00