전체 글 썸네일형 리스트형 docker에 prometheus + grafana 올리기 (Spring boot) 왜 prometheus와 grafana를 사용하게 되었을까 ? 실제 서비스를 돌리고 운영을 해가면서 실제로 친구들이 테스트를 진행해주면서 병목지점이 발생부분을 찾을 수 있었다. 그래서 깨달은 것이 바로 모니터링 환경이다.모니터링 환경을 구축함으로 써 Tester가 알려주지않아도 어느지점 어느 api에서 병목지점이 생겼는지 파악하고 해당 부분을 파악하고 수정해나아가는 것이 중요하다는 것을 깨닫게 되었다. 모니터링 도구 중 가장 많이 사용 되고 있는 prometheus와 gramafana는 정말 찰떡궁합이다. 바로 이런 구조로 springboot에서 발생한 매트릭정보를 prometheus와 연동시켜 spring boot Actuator를 노출시키고 해당 매트릭을 수집을 위한 엔드포인트를 열어주게되면 prom.. 더보기 Dynamodb 이슈해결 , 페이지네이션 제가 채팅서비스를 구현한 아키텍처의 구조는 다음과 같습니다. 기존 채팅서비스는 ChatMessage chatMessage = dynamoChatRepository.findById(chatId).orElseThrow(() -> new ApplicationException(ApplicationErrorType.CHAT_NOT_FOUND)); 다음과 같은구조로 채팅방에 있는 모든 채팅을 읽어와서 service로직에서 정렬 및 필터처리를 수행하였습니다. ISSUE 데이터가 쌓임에 따라 점점 데이터에 과부하가 발생하는 문제가 발생하였고, 어떻게 해결할 지 찾아보았습니다. 첫번째 해결방안 다음 그림처럼 20페이씩 읽어오고 이전페이지를 읽어오려면 "이전 메세지를 불러오기" 를 클릭하여 페이지네이션을 하는 방법이 있었.. 더보기 eks + argo cd +jenkins 로 ci/cd 구축하기 eks를 구성하고 ingress를 미리 다 사전에 셋팅 해논것을 전제로 시작하겠습니다. ingress구성하는방법은 여기 블로그를 참고하시면 되겠습니다. eks 구성하는방법은 저작권이 있어서 못올려드립니다ㅠㅠ https://velog.io/@lijahong/0%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-AWS-%EA%B3%B5%EB%B6%80-EKS-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0-Nginx-Ingress-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%9C%EC%9A%A9#2-ingress-nginx-controller-admission 0부터 시작하는 AWS 공부 - EKS 활용하기 - Nginx .. 더보기 ngrinder entity 조회방식 vs dto 조회방식 성능테스트 결과 오늘은 다중조인이 들어가지않은 단순 paging 처리가 되어있는코드에 성능테스트를 해보겠습니다. ngrinder 의 구성부터 보여드리겠습니다! 1개의 초당 50번의 요청을 하였고 약 1분간 진행하였습니다. @Override public Page getBoardList(BoardSearchCondition condition, Pageable pageable) { String[] word = (condition.getActivityField()!=null) ? condition.getActivityField().split("/") : null; BooleanExpression activityFieldExpression = (word != null) ? activityFieldContains(word) : n.. 더보기 server sent event (sse) 사용시 connection pool 부족 문제 새로고침이되거나 다른페이지로 랜더링이 될 시 sse프로토콜을 재 연결시켜줘야했다 그때마다 백엔드 서버에서 커넥션 pool을 반환을 해주지않아 오류가 발생했다. HikariPool-2 - Pool stats (total=10, active=10, idle=0, waiting=1) 커넥션 풀이 꽉차게되고 더이상 백엔드서버에 아무런 api도 호출이 되지 않는 문제가 발생했다. 결국 chatgpt에게 물어보았지만 제대로 된 답변은 얻기 힘들었고, 혼자 고민을 해보기도 하고 인터넷 서칭도 해봤다. 결론적으로 2가지의 해결방안을 찾았다. 해결방안 1. open session in view의 설정을 false로 연결 open session in view의 default는 true이다 세션을 요청의 끝까지 유지하게되고.. 더보기 nginx port 분리하여 blue/green 배포 dockerfile FROM openjdk:11 ARG IDLE_PROFILE ARG JAR_FILE=*.jar ENV ENV_IDLE_PROFILE=$IDLE_PROFILE COPY ${JAR_FILE} app.jar RUN echo $ENV_IDLE_PROFILE ENTRYPOINT ["java", "-Dspring.profiles.active=${ENV_IDLE_PROFILE}", "-jar","/app.jar"] application.yml spring: profiles: group: development: - common - development_database - port_8080 production-set1: - common - production_database - port_9001 pro.. 더보기 실습으로 배우는 선착순 이벤트 시스템 - review 실습으로 배우는 선착순 이벤트 시스템이란 것을 인프런에서 시청했다. kafka를 통해 영감을 받거나 새로운 insight를 얻은 것을 정리하려고 한다. https://www.inflearn.com/course/%EC%84%A0%EC%B0%A9%EC%88%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%8B%A4%EC%8A%B5/dashboard 실습으로 배우는 선착순 이벤트 시스템 - 인프런 | 강의 선착순 이벤트 시스템을 구현할 때 어떤 문제가 발생할 수 있고 어떻게 해결할 수 있는지 배워봅니다., - 강의 소개 | 인프런 www.inflearn.com 쿠폰 서비스 개발하기 100개의 쿠폰을 선착순으로 개발할 예정이고 1000명이 해당 쿠.. 더보기 [Spring] 배포 서버의 도커 컨테이너에 크롤링 환경 구축하기 배포 서버의 도커 컨테이너에 크롤링 환경 구축하기 ⚙️ 개발 환경 AWS ubuntu EC2 Java 11 Gradle Spring boot 문제가 발생했다. 자꾸 크롬드라이버의 경로를 못찾음 ... 뭐지뭐지 ... 📍 Dockerfile : 도커 컨테이너에 크롬 브라우저 및 크롬 드라이버 설치 후 배포 FROM openjdk:11 COPY ./build/libs/TeamPlanner-BE-0.0.1-SNAPSHOT.jar application.jar RUN apt-get -y update RUN apt -y install wget RUN apt -y install unzip RUN apt -y install curl RUN wget https://dl.google.com/linux/direct/goog.. 더보기 이전 1 ··· 3 4 5 6 7 8 9 ··· 35 다음