kafka 컨슈머 테스트 시 Thread.sleep 이외 방법
806
작성한 질문수 8
안녕하세요.
kafka 동시성 테스트 시 컨슈머가 비동기로 데이터를 처리하니까 컨슈머가 모든 데이터를 polling하기 전에 이미 메인 스레드가 종료되어 테스트 케이스가 실패로 끝나는 경우에서요.
Thread.sleep으로 일정 시간을 멈추는 방법 말고는 처리할 수 있는 또 다른 방법이 있을까요?
답변 2
0
kekekiki 님 안녕하세요.
Thread.sleep 을 제외하고는 다른 방법이 떠오르지가 않는군요..
조금 첨언하자면 실무에서는 프로듀서를 통해 데이터 전송하는 것까지만 확인하는 것이 일반적입니다.
api 에서는 데이터 전송까지만 정상적으로 되었다면 정상적인 응답이라고 판단하는 것 입니다.
그리고 consumer 에서는 데이터를 받았을 때 정상적으로 처리하는지만 테스트 하는 것이 일반적입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
kafka 컨슈머 테스트에서 컨슈머가 모든 데이터를 polling하기 전에 메인 스레드가 종료되는 문제가 발생하는 것 같네요. Thread.sleep은 일정 시간 동안 대기하는 방법이기 때문에, 더 효율적인 대안이 있을 수 있습니다.
처리할 수 있는 다른 방법으로는, 프로듀서와 컨슈머가 모두 처리를 완료한 후에 메인 스레드를 종료하도록 하는 방법이 있습니다. 이를 위해선 프로듀서와 컨슈머의 작업을 동기적으로 처리해야 합니다.
예를 들어, 컨슈머가 모든 데이터를 처리할 때까지 무한루프를 돌며 계속해서 데이터를 가져오는 형태로 코드를 작성하고, 프로듀서도 처리 완료 후에 테스트를 종료하는 방식입니다. 이렇게 하면 메인 스레드가 종료되는 문제를 해결할 수 있습니다.
하지만 이 역시 테스트 가용성에 영향을 줄 수 있으니, 실제 운영에서는 테스트를 위한 임시적인 방법이라고 생각하시고, Thread.sleep을 사용하는 방식이나 다른 방법들을 고려해보세요.
더 나은 대안을 제공해드리지 못해 죄송하지만, 도움이 되셨으면 좋겠습니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요. 즐거운 프로그래밍 하세요!
ApplyService와 Consumer서비스의 db공유?
0
56
2
consumer가 topic을 전부 사용하기 전에 사용자에게는 쿠폰이 발급된것으로 확인하는 과정에서 발생가능한 문제.
0
77
1
쿠폰에 관련되어서 좀 더 참고할만한 자료가 있을까요?
0
86
2
흐름정리 제가 이해한게 맞나요?
0
73
2
안되서 스트레스 받아요
-2
111
2
프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!
0
185
2
Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...
0
213
1
카프카를 도입하고 난 뒤 로그로 보여지는 장점을 발견하지 못하고 있습니다.
0
167
2
키생성 방식에 따른 성능
0
168
2
사용자 동선에 대한 트랜잭션 문의
0
134
2
강사님 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다.
0
210
1
쿠폰 발급 개수 제한
0
183
2
ApplyService 의 총 처리 시간이 궁금합니다.
0
154
1
쿠폰 생성 에러 처리에 관해서 질문이 있습니다.
0
224
2
마지막에 하신 테스트 자체는 실패하는 게 맞는거죠??
0
276
2
안녕하세요 질문 있습니다!
0
295
1
쿠폰 발급 유저 흐름에 대한 질문
0
308
2
수량 조절에 대한 질문이 있습니다.
0
231
2
kafka Producer 실행 중 에러 시 redis count 정합성 이슈
0
398
2
test 과정에서 오류가 발생합니다.
0
383
1
도커 환경설정에 대해서
0
269
2
Redis의 INCR 사용 해도 Race condition이 잡히지 않는 문제
0
599
1
consumer 모듈
0
322
2
카프카 토픽 생성오류
0
383
2





