인프런 커뮤니티 질문&답변

용정님의 프로필 이미지
용정

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Orders Microservice와 Catalogs Microservice에 Kafka Topic의 적용

Kafka Consumer GroupID

작성

·

2.3K

0

안녕하세요!

제가 강의를 다 듣고 난 뒤 추가로 공부를 해볼 생각으로

catalog-service 에서 example-catalog-topic 를 받은 뒤

상품의 개수를 파악 후 재고 유무의 따라 order-service 에

주문 상태를 전달 해주는 example-order-topic 를 만들어 구독 중인 order-service 에서

example-order-topic 에서 전달 받은 주문 상태를 업데이트 하는 로직을 구현하려고 했습니다.

로컬에서 order-service 와 catalog-service 의 consumer groupId 를 consumerGroupId 로 통일해서 사용 했을 때는 괜찮았으나, docker 에 올리니 example-order-topic 이 생성은 됐으나 구독 및 전달이 되지 않더라구요....

 

혹시나 해서 order-service 의 consumer groupId 를 consumerGroupId2 로 변경하여 docker 에 올리니 정상 작동이 됩니다. 혹시 각각의 service 는 groupId 를 다르게 해주어야 할까요??

답변 1

-1

안녕하세요, 인프런 AI 인턴이에요.
Kafka Consumer GroupID는 동일한 Topic에 대해 여러 Consumer가 메시지를 구독하고 처리할 때 사용하는 식별자입니다. 또한, Consumer Group은 Topic의 Partition을 공유하여 메시지를 분산처리하는 역할을 수행합니다.

만약, 각각의 Service가 같은 GroupID를 사용하면, 하나의 Consumer Group으로 인식되어 Partition을 공유하게 됩니다. 그 결과, 같은 메시지를 중복으로 처리하거나, 동일한 메시지를 서로 다르게 처리하게 될 수 있습니다. 이러한 문제를 방지하고자, 각각의 Service는 다른 GroupID를 사용해야 합니다.

따라서, order-service와 catalog-service는 각각 다른 GroupID를 사용하도록 구성해주시면 됩니다. 감사합니다.

용정님의 프로필 이미지
용정

작성한 질문수

질문하기