반응형
작업한 것
- [ 채팅 서비스 ] 채팅 서버 여러 대 동작하여 Kafka 정상 동작하는지 확인
- [ 채팅 서비스 ] @ExceptionHandler 및 Validation 어노테이션 활용하여 유효성 검사 및 예외처리 구현 완료
- [ 채팅 서비스 ] Auditing 구현완료
- [ 채팅 서비스 ] DB H2에서 MySQL로 변환
- [ 포스트 서비스 ] Controller 및 Entity 구현 완료
배운점
- 카프카는 동일한 그룹아이디에 있는 컨슈머들 간의 분산 메시징을 한다. 그래서 컨슈머 하나당 하나의 파티션을 할당 받는다. 만약 동일한 파티션을 같이 구독하고 싶다면 컨슈머 그룹이 달라야 한다.
- 여러 대의 채팅 서버가 모두 같은 파티션을 바라봐야 하므로, 서버마다 고유의 컨슈머 그룹을 가져야 했다. 컨슈머 그룹은 정적변수로 지정해야 하는데, 정적변수는 동적으로 지정할 수 없기에 난감했다. SpEL을 활용하면 정적변수도 동적으로 지정할 수 있어서 해결 가능했다. "#{ T(java.util.UUID).randomUUID().toString() }"
- Validation 어노테이션은 자료형에 따라 부여할 수 있는 것이 다르다.
-
마무리
- 개발은 감 잡았다. 서비스 간 통신 방법을 찾고 쿠버네티스에서 카프카랑 통신 할 수 있다면 프로젝트를 좋게 마무리 할 수 있을 것 같다.
반응형
'프로젝트 > DevLink' 카테고리의 다른 글
[프로젝트] 포스트 서비스 구현 및 멘토링 ( 2023.12.13(수) ) (0) | 2023.12.14 |
---|---|
[프로젝트] 포스트 서비스 구현 및 KPT 중간회고 ( 2023.12.12(화) ) (0) | 2023.12.13 |
[프로젝트] 채팅서비스에 Kafka 연동하기 ( 2023.12.07(목) ) (0) | 2023.12.08 |
[프로젝트] 설계하기 - 프로젝트 환경 맞추기 + 프로젝트 멘토링 ( 2023.12.06(수) ) (1) | 2023.12.07 |
[프로젝트] 설계하기 - API 설계 ( 2023.12.05(화) ) (0) | 2023.12.06 |