프로젝트/DevLink

[프로젝트] 채팅서비스 구현완료 및 포스트 서비스 구현 ( 2023.12.11(월) )

IT록흐 2023. 12. 11. 23:39
반응형

 

 

작업한 것

- [ 채팅 서비스 ] 채팅 서버 여러 대 동작하여 Kafka 정상 동작하는지 확인 

- [ 채팅 서비스 ] @ExceptionHandler 및 Validation 어노테이션 활용하여 유효성 검사 및 예외처리 구현 완료

- [ 채팅 서비스 ] Auditing 구현완료 

- [ 채팅 서비스 ] DB H2에서 MySQL로 변환 

- [ 포스트 서비스 ] Controller 및 Entity 구현 완료 

 

배운점

  • 카프카는 동일한 그룹아이디에 있는 컨슈머들 간의 분산 메시징을 한다. 그래서 컨슈머 하나당 하나의 파티션을 할당 받는다. 만약 동일한 파티션을 같이 구독하고 싶다면 컨슈머 그룹이 달라야 한다. 

  • 여러 대의 채팅 서버가 모두 같은 파티션을 바라봐야 하므로, 서버마다 고유의 컨슈머 그룹을 가져야 했다.  컨슈머 그룹은 정적변수로 지정해야 하는데, 정적변수는 동적으로 지정할 수 없기에 난감했다. SpEL을 활용하면 정적변수도 동적으로 지정할 수 있어서 해결 가능했다. "#{ T(java.util.UUID).randomUUID().toString() }"
  • Validation 어노테이션은 자료형에 따라 부여할 수 있는 것이 다르다. 
    •  

마무리

 - 개발은 감 잡았다. 서비스 간 통신 방법을 찾고 쿠버네티스에서 카프카랑 통신 할 수 있다면 프로젝트를 좋게 마무리 할 수 있을 것 같다. 

 

 

 

 

 

반응형