inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

9.Consumer간 작업분배-WorkQueue part 2

모듈질문

114

보키

작성한 질문수 31

0

안녕하세요. 강의 잘 듣고 있습니다

선결지식 확인 질문과, 강의 질문이 있습니다.

 

Q1. 원래는 프로듀서 모듈, 컨슈머 모듈, 클라이언트(API)

이렇게 3개의 모듈로 분리되어서 처리되는게 맞는거죠?

그리고 모듈이라하는거는 하나의 jar로 묶일 수 있는 모듈과, 각각 pid를 갖는 단일 프로세스 모듈 이렇게 있는데

보통은 프로듀서/컨슈머/클라이언트 모듈이라 하면 후자를 지칭하는 것도 맞구요!?

 

Q2. 강의에서 애플리케이션을 jar로 말아서 2개를 띄우신 것은 어떻게 보면 현재 애플리케이션 내부에서 produce/consume/client 3개의 역할을 혼자 다 맡고 있기때문에

의도하신 바는 consumer를 2개 띄웠을 경우 RR 방식으로 동작한다는 것을 뜻하신게 맞을까요?

 

감사합니다 :)

 

 

java spring-boot jpa msa websocket rabbitmq

답변 1

1

코드빌런

안녕하세요. 문의하신 사항이 모두 맞습니다.

부연드리자면,

1번 모듈 구성은 회사 업무 구조를 따라 다소 다를 수 있습니다만, 저는 API 서버(클라이언트는 브라우저나 앱에서 접근) 와 프로듀서, 컨슈모 모듈을 분리하는 것을 추천 드립니다.

이는 역할이 분명한 성격을 띄고 있고, 일반 비즈니스 모듈(API)의 배포가 빈번할텐데 이때 한묶음으로 프로듀서, 컨슈머가 같이 딸려서 배포가 다간다는게 잠재적으로 장애 위험이 있다고 봐야 하지 않을까 싶어서 나누는 걸 추천 드립니다.

 

2번, 워커(컨슈머) 노드들의 확장이 하나일때와 여러개일 때, 트래픽 증가에 따른 분배 처리를 보여드리려는 의도입니다. 노드는 트래픽 규모에 따라서 적절히 스케일링 하고, 큐 서버에서 분배 처리를 RR 혹은 Prefech 로 분해할 수 있다는 개념을 보여드리기 위해서 설정한 예제라고 보시면 됩니다.

 

감사합니다.

 

0

보키

감사합니다 코드빌런님!!

16 강의 메세지 retryCount의 의도

0

26

2

step 4 - fanout 관련 질문

0

69

2

dlx dlq 설정 관련

0

67

1

동적 큐 이름 설정 방법 및 SimpleRabbitListenerContainerFactory의 재정의에 따른 Retry 설정 미적용 관련 질문입니다.

0

101

1

강의 자료 관련

0

86

2

인증 에러

0

83

2

RabbitMQ에서의 트랙잭션 메시징 질문

0

110

2

Producer/Consumer 단위

0

71

2

안녕하세요 섹션2. 12번 강의에서 질문 있습니다.

0

88

2

안녕하세요 "섹션2 8. Consumer간 작업 분배" 에서 질문 있습니다.

0

91

2

컨슈머 서버 질문드립니다

0

82

2

DLQ 관련 질문

0

133

2

알림은 왜 pub sub 구조로 설계하나요?

0

150

2

Receiver를 여러개 하려면 어떻게하나요?

0

142

2

깃허브 step11 브랜치

0

99

1

DLQ 재시도 로직 처리후 DLQ에 unacked 1건이 남는거에 대해서

0

155

2

NotificationMessage가 필요한 이유 질문

0

111

2

스탭4 질문드립니다

0

157

3

생성자 질문드립니다

0

108

2

Pub/Sub & WebSocket 활용한 실시간 알림

0

219

2

채팅 방식 질문입니다!

0

140

2

강의와 살짝 무관하지만.. MQ에 대한 질문이 있습니다!

0

209

1

챕터18 retry yml 강의 부분 질문

0

191

2

tutorial-step4 질문

0

151

2