
애플리케이션 정보스프링 부트 3.2.xmysql 8.0로컬 pc 환경cpu - 16 core메모리 32GB부하 테스트 조건동시 접속자 100명반복 100회위와 같은 환경에서 부하테스틑 진행해보았다.테스트한 api는 GET 요청으로 내부 로직은 select만 존재하며 100건의 게시글을 조회하는 api이다. 애플리케이션 지표cpu 가장 먼저 cpu 지표를 보면 시스템 cpu 사용량은 99%이지만,애플리케이션의 cpu 사용량은 6% 정도이다.로컬에서 테스트를 하다보니 크롬, mysql, 도커 등 여러 프레스를 실행중이라 애플리케이션의 cpu 사용량은 높지 않았다.정확한 테스트를 수행하기 위해서는 별도의 서버 인스턴스에 애플리케이션만 구동하여 테스트 해야한다. 메모리 메모리 사용량을 보면 old 영역의 지표..
Topic 설정Topic 설정은 kafka-UI를 통해 설정하였다. partition을 3으로 설정하여 해당 토픽의 메시지를 3개 단위로 나누어 병렬처리가 될 수 있도록 하였다.(Consumer 설정에서 해당 Topic을 처리하는 Consumer Group의 Consumer를 3개로 해야함, 뒤에서 설명) replica.factor는 3으로 설정하여 각 파티션이 3개의 브로커에 복제되도록 하였고,min.insync.replicas를 2로 설정하여 최소 2개의 브로커에 각 파티션이 복제되면 메시지 전송이 성공하도록 하였다. 이 조건을 만족할 경우에만 다음 메시지 처리가 가능하도록 설정하였다[잠깐] min.insync.replicasmin.insync.replicas는 Kafka 파티션이 메시지를 정상적으로..

ConsumerConsumer는 Kafka Topic에서 메시지를 읽어오는 주체이다.Consumer는 반드시 Consumer Group에 속해 있다.토픽에 쓰여진 메시지를 Pull 방식으로 가져옴Partition의 데이터는 동일 Consumer Group 내에서 단 하나의 Consumer만 읽을 수 있음(Consumer Group 내에서 offset을 공유함)Consumer Group 이 다르면 Partition의 데이터를 여러 Consumer가 읽을 수 있음-> 하나의 메시지에 다양한 처리 진행 가능한 Consumer는 여러 Partition을 담당할 수 있음 Consumer Offset 관리Kafka 컨슈머가 어디까지 메시지를 읽었는지 추적하고, 장애 복구나 재시작 시 중복 처리 없이 메시지를 이어..