<aside>
🏁 실전 프로젝트 3주차에 가장 집중해주셔야 할 것은 “프로젝트의 완성도 높이기”입니다.
MVP에 추가 및 보완해야 할 기능, 우리의 프로젝트가 기술적으로 인정 받을 수 있는 특징을 정리해주세요.
멘토님들과 함께 프로젝트를 높은 완성도로 마무리 할 수 있는 방향을 점검해 봅니다.
</aside>
-
지금까지 배운 트러블 슈팅에 대해 고민하신 후, 가장 적합하다고 생각하는 트러블 슈팅을 한 가지 이상 작성해 주세요!
-
동시성 제어
-
프로젝트에 새롭게 도입한 기술이 있다면 정리해 주세요! (도입 이유도 꼭 적어주세요!)
- Spring kafka, kraft : 주문에 다른 상품에 재고 처리 과정 분산락을 통해 처리하였고 이 부분을 리소스가 큰 작업으로 생각을 하고 consumer 서버로 분리함으로써 처리량에 따른 사용자의 요청에 따른 응답속도 개선과 사용자에게 이후에 수행되어도 상관없는 로직들을 비동기 처리함으로 주문 로직에 대한 성능을 개선하고자 도입하였습니다.
- ALB, Auto Scaling (도입 예정) :
- kafka monitoring Prometheus Grafana (도입 예정) : jmx를 이용한 카프카 메트릭 모니터링
-
이번 주 한 일
- ERD 세부적으로 분리, Event관련 API 추가, 카테고리 검색 페이지 캐싱, 카프카 구성(주문과 주문시 재고처리 분리), 재고처리 동시성 제어
-
이외에도 기술적인 방향을 잡기 위한 질문을 정리해오시면 가장 좋습니다!
- Producer 에서 성공하여 보낸 요청을 Consumer 서버에서는 모두 처리하지만 Producer 서버에서 1만개의 쓰레드의 모든 요청을 처리하지 못하고 있는 상황입니다. 이러한 문제를 해결 하기 위해서 Scale out을 적용해보려고 합니다. (적용 후 테스트 예정)
- 지금 현재 Producer에서 1만 개의 요청을 보내면 요청을 다 보낸 이후에도 Consumer 서버쪽에서 모든 요청을 처리하는데 1분 정도 걸리는데 이 정도는 허용 범위인지 아니면 컨슈머 쪽을 늘려야 하는지