다섯 살도 알 수 있게 · SRE

메시지 큐가 뭐예요?

메시지 큐를, 주문서를 바로 넘기지 않고 바구니에 쌓아두는 간식 창구 이야기로 풀어봤어요.

간식 창구한 번에 너무 많아요!주문이 한꺼번에 몰려 직원이 손님을 놓쳐요

주문이 한꺼번에 몰려 직원이 손님을 놓쳐요.한 번에 너무 많아요!

아직 못 받아요?손도 못 대고 있어요받는 쪽이 바쁠 때 보내는 쪽이 기다려야 하면 둘 다 느려져요

왜: 받는 쪽이 바쁘면 보내는 쪽도 기다려야 해서 둘 다 느려져요.받는 쪽과 보내는 쪽이 서로의 속도에 묶여요.

주문 바구니주문서를 바구니에 쌓아두면, 보내는 쪽과 받는 쪽이 각자 속도대로 움직여요

주문서를 바구니에 쌓아두면, 보내는 쪽과 받는 쪽이 각자 속도대로 움직여요.보내는 쪽은 바로 다음 손님을, 받는 쪽은 자기 속도대로.

서로 안 기다려도 돼요비동기 처리예요
순서대로 쌓여요넣은 순서 그대로요
밀려도 안 터져요바구니만 길어져요
사람을 늘리면 더 빨리 비워요처리하는 사람을 늘리면요
주문서 넣는 사람쌓인 주문서하나씩 꺼내는 사람보내는 사람과 받는 사람 사이에 바구니가 있어요

넣는 사람 → 쌓인 주문서 → 하나씩 꺼내는 사람.보내는 사람과 받는 사람 사이에 바구니가 있어요.

바구니가 너무 길어졌어요오래된 주문이 너무 늦어요너무 길어지면 오래된 주문이 늦어지고, 꺼내다 놓치면 영영 사라져요

너무 길어지면 오래된 주문이 늦어지고, 놓치면 사라져요.길이는 백프레셔로, 놓치는 건 데드레터 큐로 다뤄요.

한 줄로

메시지 큐 = 주문서를 바로 넘기지 않고 바구니에 쌓아두어, 보내는 쪽과 받는 쪽이 각자 속도대로 움직이게 하는 소품.

보내는 쪽을 프로듀서, 받는 쪽을 컨슈머라고 불러요. 같은 바구니를 여러 손님이 함께 봐도 되고(퍼브/섭), 들어온 순서대로 나가는 게 보통이에요. 처리하는 사람을 늘리면 바구니가 더 빨리 비워져요.

어른들은 이렇게 불러요

메시지 큐
Message Queue
주문서를 쌓아두는 바구니. 보내는 쪽과 받는 쪽을 서로 안 기다리게 해줘요.
비동기 처리
Asynchronous Processing
보내고 나서 답을 바로 안 기다리는 방식. 바구니가 있어서 가능해요.
프로듀서/컨슈머
Producer / Consumer
주문서를 넣는 사람과 꺼내는 사람. 서로 몰라도 바구니만 같이 보면 돼요.
큐 길이
Queue Length
바구니에 쌓인 주문서 수. 너무 길어지면 오래된 주문이 늦게 처리돼요.
퍼브/섭
Pub/Sub
한 바구니를 여러 사람이 함께 보는 방식. 발행-구독이라고도 불러요.
순서 보장
Ordering Guarantee
넣은 순서대로 나온다는 약속. 모든 큐가 이걸 약속하진 않아요.
백프레셔
Backpressure
바구니가 길어지기 전에 입구를 잠깐 막는 것. → 입구를 잠깐 막기
데드레터 큐
Dead-letter Queue
꺼내다 계속 실패하는 주문서를 따로 빼 두는 함. → 아무도 안 찾아간 바구니함
다음 이야기
아무도 안 찾아간 바구니함 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →