Giter Site home page Giter Site logo

school-reunion's Introduction

동호회 서비스 앱

프로젝트 소개

  • 동창들과의 연락과 만남을 만들어주는 앱입니다.
  • 앱의 완성 보다는 공부 목적으로 기술들의 구현에 초점을 두었습니다.

사용 기술 및 환경

JAVA 17, spring boot 3.2.2, spring data jpa,QueryDsl, mysql, docker, prometheus, grafana, ngrinder, nginx

TODO

  • OpenAPI spec 적용
  • Docker 활용
  • 모니터링(APM)
  • 부하 테스트 (ngrinder 사용)
  • 로드밸런서(nginx)를 사용한 분산 처리, 분산처리 전후 부하테스트 비교
  • MSA 구현
  • 디비 캐싱 (Redis)
  • CI/CD

모니터링(APM)

환경

prometheusd와 grafana를 사용하여 모니터링 환경을 만들었습니다.

분산처리와 성능테스트

docker compose 로 board app의 cpu와 memory를 제한시킨 뒤 세 개로 scale하고, nginx를 로드밸런서로 활용하여 분산처리를 구현했습니다.

성능테스트

nGrinder를 사용하여 분산처리 전후로 나누어 부하테스트를 진행 했습니다.

nGrinder를 실행하는 환경과 Spring boot app을 실행하는 환경은 서로 간섭이 일어나지 않게 분리하여 진행했습니다.

결과를 봤을 때 분산처리를 했을 때가 하지 않았을 때보다 TPS가 3배 높아진 모습을 볼 수 있습니다.

분산처리 Screenshot 2024-03-14 at 4 07 09 PM

분산처리 x Screenshot 2024-03-14 at 4 07 33 PM

또한 밑의 이미지를 보면 중간에 Tenured Gen의 메모리 공간이 다 차면서 GC가 실행됨에 따라 STW가 발생해 잠시 응답을 받지 못하는 현상도 볼 수 있었습니다.

Screenshot 2024-03-14 at 4 18 02 PM Screenshot 2024-03-14 at 4 18 13 PM

school-reunion's People

Contributors

bottlemoon avatar f-lab-bot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.