• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

feignclient와 kafka를 사용하는 방법의 이점

22.08.22 22:49 작성 조회수 582

1

안녕하세요 강의 잘 보고 있고 질문있어 글 남깁니다.

현재 catalogservice에서 수량 update를 kafka를 하고 계신데, 수량 update는 feign client를 통해 서버간 api 호출을 통해서도 가능할 것 같습니다. 그런데 단순히 카프카의 여러가지 이점을 위해서 feign client를 사용한 서버 간 api 호출보다 해당 방식이 더 좋은건가요? feign client를 사용한 방식은 별로인 상황인가요?

그리고 혹시 만약 catalog 서비스 외의 다른 서비스에서도 catalog의 수량에 관심이 있어 order가 발행하는 수량 업데이트 메시지에 관심이 있다면 해당 서비스에서도 그대로 consumer 로직을 설정하면 데이터를 받을 수 있는 것인가요? 즉 데이터를 A가 가져간다하더라고 해당 데이터가 카프카 서버에 그대로 남아 다른 서비스(b)에서도 데이터를 받을 수 있는 것인지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요, 이도원입니다. 

말씀하신대로 order-srevice와 catalog-service간의 데이터 동기화 부분(수량)을 위해 Kafka를 사용하는 것 대신 RESTful API(또는 feign client)를 호출하셔도 됩니다. 데이터 동기화를 위한 부분으로 양 서비스간에 호출 적절한 처리가 되어 있다면 어떤 방식이던 상관이 없을 거 같습니다. 다만 강의에서는 Kafka라는 MQ를 사용해 보기 위한 용도로써, 데이터 동기화라는 부분에서 두 서비스 간의 호출이 발생될 수 있음을 보여 드렸습니다. 물론 데이터 동기화는 이렇게 단순한 처리 외에도 롤백에 대한 부분도 고려하셔야 하기 때문에, 추가 작업이 더 필요합니다만, 간단한 Kafka의 사용 용도 및 데이터 동기화 처리에 대한 방법을 설명드릴 수 있었다고 생각됩니다. 

Kafka 토픽에 저장된 정보는 새로운 Consumer가 등록되면 그대로 사용할 수 있습니다. 새로운 Consumer는 참여 당시부터 Topic의 메세지를 받거나 처음부터 받아오거나 하는 식으로 원하는 메시지를 지정하여 받아 올 수 있습니다. 

감사합니다. 

이찬영님의 프로필

이찬영

질문자

2022.08.23

답변 감사합니다!

채널톡 아이콘