개발자

kafka restAPI 통신

2024년 02월 21일조회 394

현재 카프카로 서버간의 restAPI 통신을 구현하려고 하는데요 게시판 생성 요청 서비스를 만들때요. 게시판에는 멤버정보가 들어가는데요 게시판 생성요청 정보에는 게시판 제목 게시판 내용 멤버 id 가 있구요 게시판 생성요청시에 작성자id 를 가지고 멤버 서버로 멤버 정보를 요청하는 방식을 해보려고 합니다.
 카프카를 사용할때 1 . 게시판서버 게시판 생성메서드에서 프로듀서로 작성자id 를 특정 토픽에 보내고 
2 . 멤버서버에서 컨슈머 리스너를 통해 해당 토픽에 요청정보가 들어오면 3 . 요청을 처리하고 다시 객체를 반환 해줘야 하는데 이것을 다시 프로듀서로 작성하고 4 . 게시판서버에서 리스너로 응답받은 객체를 생성메서드에 주입시켜 게시판을 완성시키려고 했습니다. 찾아보니 컨슈머리스너는 void 이어야 한다고 하더라구요. 그렇게 되면 요청과 응답을 받는것을 어떻게 한 메서드 안에서 처리 해야 할까요 ? 찾아본 방법으로는 kafka rest proxy 라는것도 찾아봤는데 현업에서 사용하는 방법이 따로 있는지 궁금합니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

이양일님의 프로필 사진

안녕하세요! Client -> 게시판 서버(Web) -> Kafka -> 게시판 서버(Consumer) 의 형태의 Flow 를 동기식으로 처리하시고자 하는거로 이해하였습니다. 다만 Kafka 의 구조상 위에 정리한 Flow 를 동기적으로 수행하는것은 불가능하진 않지만 Kafka 의 장점이 사라지고 트래픽이 많을 경우 게시판 서버의 부하가 클수밖에 없는 형태라 개인적으로는 추천하지 않는 형태입니다. 그것보다는 Client 에서 게시판 생성 요청을 하면 Producer 로 생성 메세지를 Publish 한 뒤에 응답을 줍니다. 응답을 받은 Client 는 consumer 에서 게시판 생성이 완료될때까지 주기적으로 Polling 을 하며 대기하는 Flow 가 좀더 자연스러운 방향으로 생각됩니다. Kafka Rest Proxy 는 Kafka 에서 제공하는 기능을 HTTP Rest API 형태로 쓸수 있게 해주는 컴포넌트로 현재 구현에 사용하시는 Producer 나 Consumer(리스너 라고 말씀하시는 부분)를 HTTP API 로 대체할 수 있는 형태라고 이해하시면 됩니다. 저의 짧은 지식이 조금이나마 도움이 되시길 바라겠습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!