본문 바로가기

MSA5

아틸러리 그래프 부연설명 errors.EADDRINUSE: 로컬에서 로컬로 요청을 넣는 상황에서, 로컬이 사용할 수 있는 포트 개수가 모두 찼을 때 값이 나온다.(서버가 죽은 상태는 아) 포트가 같은 (내가 내 컴퓨터에 요청을 보내는 경우와 같은) 경우 제대로 측정하기 어렵다. 따라서 가용 포트번호가 없을 때 파란색 막대 그래프가 생기는 것이라고 볼 수 있겠다! 데드락이 걸리는 이유 1초에 10개를 처리할 수 있는 상황에 20개씩 요청이 들어온다면, 10개는 처리되지만 10개는 쌓이는 상황이온다. 10초 후, 더 이상 요청을 받지 않는다고 해도 쌓인 100개의 요청을 처리하느라 10초가 더 필요한 상황인데 이렇게 기존 요청도 처리하면서 새 요청까지 받아야 하는 상황이 오면 데드락에 걸린다. 서버 입장에서 이것을 방지하기 위해 타.. 2024. 3. 1.
아틸러리를 활용한 스트레스 테스트 msa 프로젝트를 하며 배웠던 개념인데 복습을 하고자 아틸러리 공식 문서에서 제공해주는 예제를 참고해 다시 정리해보도록 하겠다. 따라서 재밌는 시도 한 번 해보시길~ (내 컴퓨터 내에서 일어나는 요청에 대한 테스트이므로 완벽히 신뢰할 수 있는 결과를 얻을 수는 없다. 이것을 감안하고 진행해야 한다 ㅜ.) 아틸러리를 사용하는 이유?? 논리적 문제가 없는데 하드웨어 제약으로 서비스가 중단된다면 좀 당황스러울 것 같다. 서버마다 cpu가 다르기 때문에 수용할 수 있는 인원의 수에 차이가 발생할 수 있고 미리 스트레스 테스트를 해서 예측할 수 있는 툴이 아틸러리이다. 이렇게 미리 부하 테스트를 하면 서버가 얼마큼의 트래픽을 수용할 수 있는지, 더 수용하려면 어떻게 로드밸런싱을 하면 좋을 지, 사양을 업그레이드할.. 2024. 2. 28.
동시성 처리의 중요성과 방법 부트캠프에서 강의를 들으며 추가적으로 공부한 내용을 정리한 글입니다! 부족한 부분이 있다면 댓글 달아주시면 감사하겠습니다. 언제든 환영! 동시성 처리의 중요성 동시에 여러 요청이 들어오면 결과값이 정확하게 반영되지 않을 수 있습니다. 예를들어 100개의 재고량에 A가 5개, B가 3개, C 가 1개를 요청했다면, 우리가 생각하기에는 100-5-3-1 을 해서 요청 후 재고량은 91이라고 생각할 수 있습니다. 하지만 만약 요청이 동시처럼 보일만큼 비슷한 시점에 들어왔다면, 커밋 포인트가 95 일수도, 98일수도, 99가 될 수도 있습니다. (락으로 제한하는 방법이 있다) 또한 선착순 이벤트와 같이 순서가 중요한 상황에서는, 동시성 문제를 해결하지 못한 경우 요청이 유실되고 제한수 이상으로 쿠폰이 발급되는 .. 2024. 1. 26.
CQRS 패턴 적용기 - 배민 우아콘 정리 MSA로 프로젝트를 진행하며 한 레포지에 조회와 생성 메서드가 다 들어가있으니 가독성도 떨어지고 DB를 직접 조회하는 것에 대하여 부담을 느꼈다. 서비스 구현이 많지 않은데도 불구하고 벌써부터 이런 문제가 생기면 안 되겠다 싶어 찾아보니 CQRS 패턴을 알게 되었고, 배민에 괜찮은 강의가 있어 보고 정리하였다. 확장성을 고려해 CQRS 패턴을 꼭 도입하고 싶은데, 다음엔 직접 적용한 경험을 기록하겠다! 1.B마트를 운영하며 마주한 문제 RDBMS 기반의 서비스들이 그렇듯 아주 많은 서비스가 데이터를 관리하는 차원에서 정규화한 데이터와 노출 도메인의 데이터 구조가 다르다. B마트도 MySQL을 이용하고 있으며 지점, 카탈로그, 상품에 대한 메타 정보를 입력, 수정, 노출하며 이를 위한 매핑 설정을 최종 단.. 2023. 12. 9.