728x90 분류 전체보기66 Grafana K6를 이용하여 부하 테스트 해보기 이번에는 Kafka Consumer를 개발하면서 실제로 트래픽 처리에 대한 부하테스트를 진행하고 싶었습니다. 일반적으로 부하 테스트를 위해 사용할 수 있는 도구는 다양한데, 대표적으로 Apache Jmeter와 Gatling, kafka에서 제공하는 kafka-producer-perf-test & kafka-consumer-perf-test, Grafana K6 등이 존재합니다. 저는 이 중 kafka-perf-test와 Grafana k6를 사용하여 부하테스트를 진행하였습니다. Grafana K6 경험을 기술하기 전 K6을 사용하기 전에 이용해본 Kafka shell을 간단하게 살펴보고자 합니다. 1. kafka-producer-perf-test & kafka-consumer-perf-test 테스트.. 2024. 10. 27. [WebClientRequestException] Pending acquire queue has reached its maximum size of 40 해결한 경험 서론 오늘 다룰 이슈는 pendingAcquireMaxCount에 관한 이야기입니다. 우리 팀에서는 광고 이벤트 트래킹 통계를 연동사 API를 통해 제공 받습니다. 연동사 마다 제공해주는 단위가 각각 다르며 특정 연동사는 다수의 Report API를 호출하여 DB에 적재해야 합니다. 이를 WebFlux를 사용하여 적재하는 과정 중 해당 에러가 발생하였습니다.에러 전문 열어보기더보기[2024-08-19 15:28:35,344] [ERROR] [] [boundedElastic-34] [c.m.d.r.v.a.ReportWebClientAdapter:79] : reportRequest Error occur. uri: {{URI}}, request: {{ReportRequest}}org.springframewo.. 2024. 9. 16. Jenkins에서 Gradle Build시 '허가 거부' 해결한 경험 Jenkins를 이용하여 spring boot 프로젝트를 gradle로 빌드하는 job을 만들어 실행한 결과 아래와 같은 에러가 발생하였다.더보기Console messageStarted by user wsyoon Running as SYSTEM Building in workspace /var/lib/jenkins/workspace/config_server_deploy/build-config-server The recommended git tool is: NONE using credential jenkins Cloning the remote Git repository Cloning repository http://{{ip:port}}/rascal/configserver.git > git init /var/.. 2024. 7. 6. [MongoDB] MongoInterruptedException 해결하기 기존 배치 방식을 API에서 파일로 데이터를 받아 처리하도록 변경하면서 개발할 당시 다음과 같은 에러를 직면했다.Interrupted acquiring a permit to retrieve an item from the pool ; nested exception is com.mongodb.MongoInterruptedException: Interrupted acquiring a permit to retrieve an item from the poolError Log 전문 보기 (아래)더보기[pool-8-thread-2] [ERROR] [BatchDao:157] : Interrupted acquiring a permit to retrieve an item from the pool ; nested excep.. 2024. 6. 2. [Kafka] Consumer Group 삭제하기 Consumer를 개발서버에서 테스트하며 생성했던 현재는 불필요한 Consumer Group 정리를 진행하였습니다. 개발서버에서 Kafka Consumer의 Group을 삭제하기 위해 명령어를 입력했더니 다음과 같은 에러 메세지와 함께 실패하였습니다.Kafka Consumer group 삭제 명령어 & Error message./kafka-consumer-groups.sh --bootstrap-server {ip}:{port} --delete --group {group-name}Error: Deletion of some consumer groups failed:* Group '{group-name}' could not be deleted due to: java.util.concurrent.Executio.. 2024. 5. 7. RecoverableDataAccessException 해결한 경험 1. 들어가며 어느 순간부터 특정 배치 스케줄러가 돌면 RecoverableDataAccessException이 발생하기 시작하였다. RecoverableDataAccessException은 JDBC 커밋 도중에 문제가 있을 경우 예외를 발생시킨다. 커넥션을 반환해줄때 이미 끊어져버린 커넥션을 사용하도록 반환해주어 DB와 통신하지 못했기 때문에 발생한다고 한다. 그럼 해당 Exception을 해결해보자. 2. 소스 분석하기 먼저, 다음 1시간 동안 배치가 도는 예시 소스이다. 아래 예시 소스를 보면서 문제가 될만한 부분이 있는지 생각해보자. # Controller@PostMapping("/batch/example")public ResponseEntity> fetchExample( @Reque.. 2024. 4. 28. 객체 지향 5원칙을 준수하여 리팩토링 하기 (with. Kafka Consumer) 23년도 회고에서 언급했던 Kafka Consumer를 리팩토링하며 새로 개발한 경험에 대해 포스팅 해보자. 먼저 글을 작성하기 전에 이번 Consumer 개발 당시 매우 많은 도움을 주신, 저를 성장할 수 있게 해주신 같은팀 대리님께 감사드립니다! 😌 해당 포스팅에서는 Consumer에 OCP(Open Closed Principle)를 만족하기 위한 추상 팩토리 패턴 적용, ThreadSafe 보장을 synchronized 대신하는 방법 적용, 동시에 요청이 들어올 경우 메모리 경합을 줄여준 방법에 대해 기술하였습니다. 1. 들어가며 이번에 영상 광고 송출 서비스를 새로 시작하게 되며 프로젝트 일정 상 기존에 담당한 동료 개발자분들이 통계 파트까지 개발하기에는 힘든 상황이었습니다. 제가 급히 프로젝.. 2024. 3. 16. 2023년 회고 및 앞으로의 계획 조금 늦은감이 있지만 23년도를 회고해보자. 글은 길지 않고 딱 할 말만 작성해보자.. 1. 서비스 회사로 이직 23년도에는 자사 서비스를 개발하는 경험을 하기 위해 이직을 결심했다. 결국 6월에 온라인 광고 플랫폼 회사로 이직할 수 있었고 결론부터 말하자면 이직에 대한 만족도는 높은 편이었다. 가장 큰 이유는 경험해보지 못해본 기술을 사용하여 개발할 수 있었고, 나의 개발 능력이 꾸준하게 성장하는데 많은 도움이 되고 있다. 2. 강의 수강 출퇴근 시간 혹은 퇴근 이후 시간에 공부한 내용을 정리해보았다. 2월 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 4월 : 스프링 시큐리티 (이직 전 회사 동료분과 스터디) 5월 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 6월 .. 2024. 1. 30. [Spring Security] SecurityContextHolder와 Authentication 알아보기 스프링 시큐리티 아키텍쳐 스프링 시큐리티 아키텍쳐가 복잡하고 쉽지 않다. 부분별로 살펴보고 전체 그림을 맞춰본다 - (Divide and Conquer) SecurityContextHolder와 Authentication 위와 같이 Authentication객체 안에서 principal를 담고 SecurityContext으로 감싸고 한번 더 SecurityContextHolder로 감싼 구조이다. SecurityContextHolder : Authentication를 SecurityContext로 담고 있는 객체 SecurityContext : Authentication을 담고 있는 객체 Authentication : principal, authorities, credentials을 담고 있는 객체 pr.. 2023. 4. 19. 이전 1 2 3 4 ··· 8 다음 728x90