인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

보키님의 프로필 이미지

작성한 질문수

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

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

모듈질문

작성

·

52

0

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

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

 

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

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

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

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

 

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

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

 

감사합니다 :)

 

 

답변 1

1

코드빌런님의 프로필 이미지
코드빌런
지식공유자

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

부연드리자면,

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

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

 

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

 

감사합니다.

 

보키님의 프로필 이미지
보키
질문자

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

보키님의 프로필 이미지

작성한 질문수

질문하기