API 응답 전에 Kafka로 이벤트를 보낼 때 - 막히는 스레드, 사라지는 로그, 200 뒤의 유실
·
Server
지난 글에서는 send() 안쪽을 봤습니다. 비동기 메서드인데도 메타데이터를 못 받거나 버퍼가 꽉 차면 max.block.ms만큼 돌아오지 않는다는 내용이었습니다. 글을 올리고 나니 다음 질문이 따라왔습니다. 지난 글의 실험은 테스트 코드에서 send()만 따로 불러 본 것이었습니다. 실제 서비스에서는 보통 이렇게 불립니다. 예를 들어 주문 API가 주문을 저장하고, "주문이 생성됐다"는 이벤트를 Kafka로 보낸 뒤 응답한다고 해 보겠습니다.클라이언트 ──HTTP──▶ 게이트웨이 ──▶ 주문 서버 ① 주문 저장 ② kafkaTemplate.send(...) ──▶ Ka..