작성
·
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를 사용하도록 구성해주시면 됩니다. 감사합니다.