다섯 살도 알 수 있게 · SRE
메시지 큐가 뭐예요?
메시지 큐를, 주문서를 바로 넘기지 않고 바구니에 쌓아두는 간식 창구 이야기로 풀어봤어요.
주문이 한꺼번에 몰려 직원이 손님을 놓쳐요.한 번에 너무 많아요!
왜: 받는 쪽이 바쁘면 보내는 쪽도 기다려야 해서 둘 다 느려져요.받는 쪽과 보내는 쪽이 서로의 속도에 묶여요.
주문서를 바구니에 쌓아두면, 보내는 쪽과 받는 쪽이 각자 속도대로 움직여요.보내는 쪽은 바로 다음 손님을, 받는 쪽은 자기 속도대로.
서로 안 기다려도 돼요비동기 처리예요
순서대로 쌓여요넣은 순서 그대로요
밀려도 안 터져요바구니만 길어져요
사람을 늘리면 더 빨리 비워요처리하는 사람을 늘리면요
넣는 사람 → 쌓인 주문서 → 하나씩 꺼내는 사람.보내는 사람과 받는 사람 사이에 바구니가 있어요.
너무 길어지면 오래된 주문이 늦어지고, 놓치면 사라져요.길이는 백프레셔로, 놓치는 건 데드레터 큐로 다뤄요.
한 줄로
메시지 큐 = 주문서를 바로 넘기지 않고 바구니에 쌓아두어, 보내는 쪽과 받는 쪽이 각자 속도대로 움직이게 하는 소품.
보내는 쪽을 프로듀서, 받는 쪽을 컨슈머라고 불러요. 같은 바구니를 여러 손님이 함께 봐도 되고(퍼브/섭), 들어온 순서대로 나가는 게 보통이에요. 처리하는 사람을 늘리면 바구니가 더 빨리 비워져요.
어른들은 이렇게 불러요
- 메시지 큐
Message Queue - 주문서를 쌓아두는 바구니. 보내는 쪽과 받는 쪽을 서로 안 기다리게 해줘요.
- 비동기 처리
Asynchronous Processing - 보내고 나서 답을 바로 안 기다리는 방식. 바구니가 있어서 가능해요.
- 프로듀서/컨슈머
Producer / Consumer - 주문서를 넣는 사람과 꺼내는 사람. 서로 몰라도 바구니만 같이 보면 돼요.
- 큐 길이
Queue Length - 바구니에 쌓인 주문서 수. 너무 길어지면 오래된 주문이 늦게 처리돼요.
- 퍼브/섭
Pub/Sub - 한 바구니를 여러 사람이 함께 보는 방식. 발행-구독이라고도 불러요.
- 순서 보장
Ordering Guarantee - 넣은 순서대로 나온다는 약속. 모든 큐가 이걸 약속하진 않아요.
- 백프레셔
Backpressure - 바구니가 길어지기 전에 입구를 잠깐 막는 것. → 입구를 잠깐 막기
- 데드레터 큐
Dead-letter Queue - 꺼내다 계속 실패하는 주문서를 따로 빼 두는 함. → 아무도 안 찾아간 바구니함
다음 이야기
아무도 안 찾아간 바구니함 →